home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #14 / Monster Media No. 14 (April 1996) (Monster Media, Inc.).ISO / prog_gen / inter49d.zip / INTERRUP.M < prev    next >
Text File  |  1996-02-11  |  294KB  |  8,143 lines

  1. Interrupt List, part 13 of 14
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996 Ralf Brown
  3. --------N-6F---------------------------------
  4. INT 6F - Novell NetWare - PCOX API (3270 PC terminal interface)
  5.     AX = function
  6.         0000h enter terminal mode
  7.         Return: AX = status
  8.                 0000h no action requested
  9.                 0001h screen save
  10.         0001h reset interface and set configuration parameters
  11.         DX = bitfields
  12.             bits 2-0: model number
  13.             bits 4-3: I/O address
  14.             bits 6-5: DMA channel
  15.         Return: nothing
  16.         0002h set display parameters
  17.         DX = bitfields
  18.             bits 1-0: OIA mode
  19.             bits 4-2: monitor support
  20.         Return: nothing
  21.         0003h read status
  22.         Return: AX = status word (see #2865)
  23.         0004h read cursor position
  24.         Return: AX = cursor position
  25.         0005h get character from device buffer
  26.         DX = cursor position
  27.         Return: AH = type (00h data, 01h attribute)
  28.             AL = data or attribute character
  29.         0006h send character
  30.         DH = type (00h ASCII, 01h extended code)
  31.         DL = ASCII character or extended code
  32.         Return: nothing
  33.         0007h set timeout
  34.         DX = timeout in seconds
  35.         Return: nothing
  36.         0008h wait for location to be modified
  37.         DX = cursor position
  38.         Return: AX = status (0000h modified, nonzero timeout)
  39.         0009h NOP
  40.         000Ah restore display
  41.         Return: nothing
  42.         000Bh update device buffer
  43.         Return: AX = cursor positoin
  44.         000Ch write string to add information area
  45.         DS:DX -> string
  46.         Return: nothing
  47.         000Dh maintenance operations
  48.         DX = maintenance operation code
  49.         Return: AX = operation status
  50.         000Eh get control program version
  51.         Return: AH = release number (major version)
  52.             AL = level number (minor version)
  53.         000Fh get microcode version
  54.         Return: AH = release number (major version)
  55.             AL = level number (minor version)
  56.         0010h save or display graphics
  57.         BX = length of data buffer
  58.         CX = subfunction request code
  59.         DS:DX -> data buffer
  60.         Return: AX = return code
  61.             CX = length of PIF data
  62.         0011h perform structured field operation
  63.         CX = request number
  64.         DS:DX -> parameter list
  65.         Return: AX = status word (see #2865)
  66.             CX = error number
  67.         0012h set cursor position for direct write buffer
  68.         DX = new cursor position
  69.         Return: AX = status word (see #2865)
  70.         0013h write direct to buffer
  71.         DL = character to be written
  72.         DH = translation option
  73.         Return: AX = status word (see #2865)
  74.         0014h write direct to buffer without echo
  75.         DL = character to be written
  76.         DH = translation option
  77.         Return: AX = status word (see #2865)
  78.         0015h set direct write string length
  79.         DX = string value
  80.         Return: nothing
  81.         0016h write string direct to buffer
  82.         DS:DX -> string
  83.         Return: AX = status word (see #2865)
  84.         0017h write string direct to buffer, untranslated
  85.         DS:DX -> string
  86.         Return: AX = status word (see #2865)
  87.         0018h get direct-write cursor position
  88.         Return: AX = cursor position
  89.         0019h convert row/column to cursor position
  90.         DH = display row (1-43)
  91.         DL = display column (1-132)
  92.         Return: AX = cursor position
  93.         001Ah convert cursor position to row/column
  94.         DX = cursor position
  95.         Return: AH = display row
  96.             AL = display column
  97.         001Bh find next field
  98.         DX = initial cursor position
  99.         Return: AX = field cursor position
  100.         001Ch find previous field
  101.         DX = initial cursor position
  102.         Return: AX = field cursor position
  103.         001Dh find next unprotected field
  104.         DX = initial cursor position
  105.         Return: AX = field cursor position
  106.         001Eh find previous unprotected field
  107.         DX = initial cursor position
  108.         Return: AX = field cursor position
  109.         001Fh find next protected field
  110.         DX = initial cursor position
  111.         Return: AX = field cursor position
  112.         0020h find previous protected field
  113.         DX = initial cursor position
  114.         Return: AX = field cursor position
  115.         0021h masked search forward
  116.         DH = mask
  117.         DL = search pattern
  118.         Return: AX = cursor position or 0000h
  119.         0022h masked search backward
  120.         DH = mask
  121.         DL = search pattern
  122.         Return: AX = cursor position or 0FFFh
  123.         0023h find field length
  124.         DX = cursor position
  125.         Return: AX = field length
  126.         0024h read field
  127.         DS:DX -> buffer for field contents
  128.         Return: AX = status word (see #2865)
  129.         0025h read screen
  130.         DS:DX -> buffer for screen contents
  131.         Return: AX = status word (see #2865)
  132.         0026h read buffer untranslated
  133.         DX = cursor position
  134.         Return: AX = buffer code
  135.             CX:BX -> 3278/79 device buffer image
  136.         0027h enable/disable keyboard
  137.         DL = new state of keyboard breaks (00h enabled, 01h disabled)
  138.         Return: nothing
  139.         0028h select host session
  140.         DL = session short name
  141.         Return: AX = session information
  142.         0029h retrieve host session name
  143.         AX = short name (DFT) or 0000h (not available, CUT mode)
  144.         002Ah get current device buffer size
  145.         Return: AX = device buffer size
  146.             CX = segment of EAB
  147.         002Bh arm modified location trigger
  148.         DX = cursor position
  149.         Return: AX = status (0000h not available, 0001h successful)
  150.  
  151. Bitfields for PCOX status word:
  152. Bit(s)    Description    (Table 2865)
  153.  0,1    cursor type
  154.  2    cursor inhibited
  155.  3    display inhibited
  156.  4    feature step inhibited
  157.  5    480-character format code
  158.  6,7    unused
  159.  8-10    model number (2-5)
  160.  11    unit has been reset by controller (cleared after status returned)
  161.  12    buffer has been written into (cleared after status returned)
  162.  13    alarm has been sounded (cleared after status returned)
  163.  14-15    monitor type (01 mono, 10 color, 11 hybrid)
  164. --------N-6F00-------------------------------
  165. INT 6F - 10NET - LOGIN
  166.     AH = 00h
  167.     DS:DX -> login record (see #2866)
  168. Return: CL = security level
  169.     AX = status (see #2867)
  170. SeeAlso: AH=01h,AH=80h,INT 21/AX=4402h"10MEMMGR"
  171.  
  172. Format of 10NET login record:
  173. Offset    Size    Description    (Table 2866)
  174.  00h  8 BYTEs    user name
  175.  08h  8 BYTEs    password
  176.  10h 12 BYTEs    name of SuperStation
  177.  
  178. (Table 2867)
  179. Values for 10NET status:
  180.  0000h    successful
  181.  01FFh    "RTO_NERR" transmit interrupt lost (time out on response)
  182.  02FFh    "NET_NERR" network (hardware) error
  183.  03FFh    "PAS_NERR" invalid password
  184.  04FFh    "LRN_NERR" local resource not available
  185.  05FFh    "SRN_NERR" server resource not available
  186.  06FFh    "LNM_NERR" already logged in under different name
  187.  07FFh    "LSF_NERR" login security failure (node)
  188.  08FFh    "NLI_NERR" not logged in
  189.  09FFh    "DIVZ_NERR" position calc error
  190.  0AFFh    "NT1_NERR" receive subfunction not = send subfunction (i.e. read,write)
  191.  0BFFh    "RFNC_NERR" request function not in range
  192.  0CFFh    "NSFH_NERR" no more server file handle entries left
  193.  0DFFh    "NFTAB_NERR" no more shared file table entries left
  194.  0EFFh    "NUFH_NERR" no more user file handle entries left
  195.  0FFFh    "CHAT_NERR" chat permit not on
  196.  10FFh    "NSRV_NERR" not a server on request
  197.  11FFh    "NOBD_NERR" no transporter board error
  198.  12FFh    "STO_NERR" time out on send
  199.  13FFh    "INF_NERR" item not found (spool item not on queue)
  200.  14FFh    "DACS_NERR" DOS access incompatible
  201.  15FFh    "RLOCK_NERR" record already locked
  202.  16FFh    "IVP_NERR" invalid parameter
  203.  17FFh    "RLTO_NERR" record lock time out error
  204.  18FFh    "CSPL_NERR" currently spooling to named device
  205.  19FFh    "DRP_NERR" dropped receive message (throttle)
  206.  1AFFh    "SOPV_NERR" open sharing violation
  207.  1BFFh    "NTUF_NERR" no more tuf entries left
  208.  1CFFh    "NOWN_NERR" not file owner on open
  209.  1DFFh    "RSEC_NERR" read security not passed
  210.  1EFFh    "WSEC_NERR" write security not passed
  211.  1FFFh    "GSEC_NERR" group security not passed
  212.  20FFh    "SEC1_NERR" security file failure
  213.  21FFh    "ACT1_NERR" activity file failure
  214.  22FFh    "SPL1_NERR" spool control file failure
  215.  23FFh    "NMT_NERR" device not mounted (spooling)
  216.  24FFh    "RSPL_NERR" spool file has not been terminated
  217.  25FFh    "DNSH_NERR" device not mounted or is not being shared
  218.  26FFh    "DUP_NERR" duplicate node ID
  219.  27FFh    "FNF_NERR" file not found error
  220.  28FFh    "NMF_NERR" no more files
  221.  29FFh    "UN_NERR" unknown internal system error
  222.  2AFFh    "QCP_NERR" print queue is full or corrupted
  223.  2BFFh    "IFNC_NERR" invalid function
  224.  2CFFh    "IVH_NERR" invalid handle
  225.  2DFFh    "TOF_NERR" too many files opened
  226.  2EFFh    "PNF_NERR" path not found
  227.  2FFFh    "SACT_NERR" named file is active
  228. ---10NET v5.0+ ---
  229.  30FFh    "NAK_NERR" received NAK on send (destination out of buffers)
  230.  31FFh    "RENT_NERR" reentrancy in driver F_SEND
  231.  32FFh    "RECV_NERR" driver could not be put in receive mode
  232.  33FFh    "NRLT_NERR" no more RLTAB entries left
  233.  34FFh    "DIAL_NERR" function requires an unsupported dialect
  234.  35FFh    "IVD_NERR" invalid device
  235.  36FFh    "NALV_NERR" netname access level violated
  236.  37FFh    "NPIDNF_NERR" network path not found
  237.  38FFh    "SP_NERR" server is paused
  238.  39FFh    "TMNM_NERR" too many remote user names
  239.  3AFFh    "DUPD_NERR" duplicate network device
  240.  3BFFh    "DIU_NERR" shared device in use, can't delete
  241.  3CFFh    "NNWD_NERR" network name was deleted
  242.  3DFFh    "NPFS_NERR" not enough space for print file
  243.  3EFFh    "NNNF_NERR" network name not found (can't find the call name)
  244.  3FFFh    "NB_NERR" network busy
  245.  40FFh    "NDNLE_NERR" network device no longer exists
  246.  41FFh    "NBCLE_NERR" NetBIOS command limit exceeded
  247.  42FFh    "FINT24_NERR" Fail on INT 24h
  248.  43FFh    "PEXP_NERR" password expired
  249.  44FFh    "NPUP_NERR" new password error
  250.  45FFh    "MAXS_NERR" maximum allowed disk space exceeded
  251.  46FFh    "TDOW_NERR" time-of-day/day-of-week error
  252. SeeAlso: #2894
  253. Index:    error codes;10Net|10Net;error codes
  254. --------b-6F00-------------------------------
  255. INT 6F - HP Vectra EX-BIOS - "F_ISR" (internal) - RESPOND TO LOGICAL ISR
  256.     AH = 00h
  257.     BP = ID for driver (see #2868)
  258.     DH = data type (see #2869)
  259.     DL = physical device driver's index (driver ID / 6)
  260.     BX,CX = data
  261.     ES:0000h -> physical device's Describe Record (see #2876)
  262.     ---keypress event data---
  263.         BH = keyboard state (only if bit 5 of DH set) (see #2870)
  264.         BL = scancode (if bit 4 of DH clear)
  265.         CX = number of scancodes in list (if bit 4 of DH set)
  266.         ES:SI -> scancode list (if bit 4 of DH set)
  267.     ---motion event data---
  268.         BX = new X position (abs device) or X increment (relative device)
  269.         CX = new Y position (abs device) or Y increment (relative device)
  270.     ---button event data
  271.         BL = button information
  272.         bits 15-8 reserved
  273.         bit 7: button state (0 = down, 1 = up)
  274.         bits 6-0: button number (0-7)
  275.         BH = reserved
  276. Return: AH = status (see #2871)
  277.     BP,DS destroyed
  278.     ---if device is keyboard translator---
  279.         BL = translated scancode
  280.         BH = new keyboard state (if DH bit 5 set) (see #2870)
  281.         DH = new scancode type (see #2869)
  282. Notes:    INT 6F corresponds to IRQ23 on the original HP Vectra AT, which is
  283.       unavailable because of its use as a BIOS extension software interrupt
  284.     the INT 6F handler consists of an instruction to load DS with the
  285.       driver's data segment followed by an indexed far jump using BP to
  286.       select the destination vector; since the interrupt handler is
  287.       located immediately following the dispatch table, the HP_VECTOR_TABLE
  288.       may be found by looking at offset 0000h in the INT 6F segment, and
  289.       its size is equal to the offset of the interrupt handler
  290.     each entry in the HP_VECTOR table consists of a DWORD for the driver's
  291.       entry point address and a WORD for the driver's data segment
  292.     this function is not user-callable, as it is a response to a physical
  293.       event, and assumes that the caller has already handled the physical
  294.       interrupt and updated the Describe Record (see #2876) to reflect
  295.       the event
  296. SeeAlso: INT 6C"HP Vectra",INT 6F/AH=02h"HP Vectra"
  297.  
  298. (Table 2868)
  299. Values for HP Vectra EX-BIOS driver ID:
  300.  0000h    V_SCOPY (null driver, but DS value points at system copyright string)
  301.  0006h    V_DOLITTLE (null driver)
  302.  000Ch    V_PNULL (null driver)
  303.  0012h    V_SYSTEM
  304.  0018h    reserved
  305.  001Eh    V_S8259
  306.  0024h    reserved
  307.  002Ah    V_SINPUT
  308.  0030h    reserved
  309.  0036h    V_QWERTY (keyboard translator)
  310.  003Ch    V_SOFTKEY (keyboard translator)
  311.  0042h    V_FUNCTION (keyboard translator)
  312.  0048h    V_NUMPAD (keyboard translator)
  313.  004Eh    V_CCP (keyboard translator)
  314.  0054h    V_SVIDEO
  315.  005Ah    V_STRACK
  316.  0060h    V_EVENT_TOUCH
  317.  0066h    V_EVENT_TABLET
  318.  006Ch    V_EVENT_POINTER
  319.  0072h    reserved
  320.  0078h    reserved
  321.  007Eh    reserved
  322.  0084h    reserved
  323.  008Ah    V_CCPCUR (keyboard translator)
  324.  0090h    V_RAW (keyboard translator)
  325.  0096h    V_CCPNUM (keyboard translator)
  326.  009Ch    V_OFF (keyboard translator)
  327.  00A2h    V_CCPGID (translator: cursor control pad keys to GID data)
  328.  00A8h    V_SKEY2FKEY (keyboard translator)
  329.  00AEh    V_8041
  330.  00B4h    V_PGID_CCP
  331.  00BAh    C_LTABLET
  332.  00C0h    V_LPOINTER (pointing device: mouse, etc.)
  333.  00C6h    V_LTOUCH (touch screen)
  334.  00CCh    V_LHPMOUSE
  335.  00D2h    ???
  336.  ...
  337.  0102h    ???
  338.  0108h    V_LNULL
  339.  010Eh    reserved
  340.  0114h    V_HPHIL
  341.  011Ah-01C2h reserved
  342.  016Eh    V_SCANDOOR (scancode management chip driver) (ES/QS/RS only)
  343.  01C8h-0228h available
  344.  
  345. (Table 2869)
  346. Values for HP Vectra EX-BIOS ISR data type:
  347.  00h    reserved "T_KC_R0"
  348.  01h    reserved "T_KC_R1"
  349.  02h    ASCII data
  350.  03h    reserved "T_KC_R3"
  351.  04h    HP150 keyboard (ITF) scancode
  352.  05h    reserved "T_KC_R5"
  353.  06h    device-definable type
  354.  07h    HP Vectra keyboard set
  355.  08h    IBM AT scancode set
  356.  09h    button data
  357.  0Ah    IBM PC scancode set
  358.  0Bh    Softkey keypad (F1-F8)
  359.  0Ch    function key keypad (F1-F10)
  360.  0Dh    HP Cursor Control Pad keypad
  361.  0Eh    Qwerty keypad
  362.  0Fh    Numeric keypad
  363.  1xh    bit 4 set: string of CX scancode of type 0xh at ES:SI
  364.  2xh    bit 5 set: BH contains current keyboard state
  365.  40h    signed 8-bit relative data
  366.  41h    signed 16-bit relative data
  367.  42h    unsigned 8-bit absolute data
  368.  43h    unsigned 16-bit absolute data
  369.  45h    specially-formed data (80x25) generated by V_LTOUCH
  370.  46h    specially-formed data (640x200) generated by V_LTABLET
  371.  47h    specially-formed data (640x200) generated by V_LPOINTER
  372.  
  373. Bitfields for HP Vectra EX-BIOS keyboard state:
  374. Bit(s)    Description    (Table 2870)
  375.  0    Alt pressed
  376.  1    Left Shift pressed
  377.  2    Right Shift pressed
  378.  3    Ctrl pressed
  379.  4    CapsLock active
  380.  5    NumLock active
  381.  6    Right unlabeled key pressed (some international keyboards)
  382.  7    Left unlabeled key pressed (some international keyboards)
  383. SeeAlso: #0465
  384.  
  385. (Table 2871)
  386. Values for HP Vectra EX-BIOS status:
  387.  00h    successful
  388.  02h    unsupported function
  389.  04h    not serviced
  390.  06h    done (no further processing should be performed on the ISR event)
  391.  F2h    device is out of paper
  392.  F4h    device is offline
  393.  F6h    no more space for more drivers
  394.  F8h    driver is busy
  395.  FAh    bad parameter
  396.  FEh    operation failed
  397. Note:    status codes are always even; negative values (>= 80h) indicate errors
  398.       while positive values indicate exceptional conditions
  399.  
  400. Format of HP EX-BIOS driver header data:
  401. Offset    Size    Description    (Table 2872)
  402.  00h    WORD    driver attributes (see #2873)
  403.  02h    WORD    string index of driver's name
  404.  04h    WORD    driver's default logical device vector (see #2868)
  405.  06h    WORD    driver's parent class (bitset) (see #2874)
  406.  08h    WORD    driver's child class (bitset)
  407.  0Ah    WORD    driver's parent vector
  408.  0Ch    WORD    driver's child vector
  409.  0Eh    BYTE    major subaddress
  410.  0Fh    BYTE    minor subaddress
  411. Notes:    this structure is located at offset 0 in the driver's data segment,
  412.       which in turn may be read from the HP_VECTOR_TABLE (see note in
  413.       main entry)
  414.     only the first WORD is required, and everything from offset 6 onward
  415.       is only required if the device wishes to perform device mapping
  416. SeeAlso: #2875,#2876
  417.  
  418. Bitfields for HP EX-BIOS driver header attributes:
  419. Bit(s)    Description    (Table 2873)
  420.  15    this is a complete driver header
  421.  14    "ATR_DEVCFG" reserved
  422.  13    driver can be mapped with the parent vector at offset 0Ah
  423.  12    driver can be mapped with the child vector at offset 0Ch
  424.  11-9    driver type
  425.     000 reserved vector
  426.     001 free vector
  427.     010 EX-BIOS service
  428.     011 logical driver (mapped from parent to child)
  429.     100 mappable driver (cannot be last in driver chain)
  430.     101 mappable driver that is last in driver chain
  431.     110 input driver (mappable)
  432.     111 reserved
  433.  8    "ATR_STRING" reserved
  434.  7    call SF_START whenever driver is remapped
  435.  6-5    addressing requirements
  436.     00 no subaddresses required
  437.     01 requires major address be stored at offset 0Eh
  438.     10 requires minor address be stored at offset 0Fh
  439.     11 required major,minor, and mid addresses (minor in low nybble of
  440.           offset 0Fh, mid address in high nybble of 0Fh)
  441.  4    driver can be shared between several parent drivers
  442.  3    driver can be shared between several child drivers
  443.  2    this driver header is in ROM
  444.  1    "ATR_YIELD" reserved
  445.  0    reserved
  446. SeeAlso: #2872,#2874
  447.  
  448. Bitfields for HP EX-BIOS driver class:
  449. Bit(s)    Description    (Table 2874)
  450.  15    maps F1 to F8 softkeys
  451.  14    keyboard
  452.  13    cursor pad
  453.  12    console device
  454.  11    serial output device (may be capable of limited input)
  455.  10    "CL_COMM" reserved
  456.  9    interfaces multiple resources transparent to operating system
  457.  8    serial output device filter (can be mapped between logical and physical
  458.       driver to perform translations)
  459.  7    addressed block device
  460.  6    priority boot device
  461.  5    logical graphics input device
  462.  4    physical graphics input device (can map to child of another driver)
  463.  3    "CL_GID" can map to an event
  464.  2    physical touch device
  465.  1    reserved
  466.  0    class extension bit
  467. Note:    special values: FFFFh maps to all other devices (V_PNULL), and 0000h
  468.       maps to no other driver
  469. SeeAlso: #2872
  470.  
  471. Format of HP EX-BIOS global data area:
  472. Offset    Size    Description    (Table 2875)
  473.  00h 20 BYTEs    reserved
  474.  14h    BYTE    sound driver status
  475.  15h    BYTE    number of pending key clicks (max 4) (see AH=34h/BP=0012h)
  476.  16h    BYTE    current tick duration scaling factor
  477.  17h    BYTE    current key click volume
  478.  18h    WORD    current beep period (10 us increments) (see AH=3Ch/BP=0012h)
  479.  1Ah    WORD    current beep duration (10 us increments)
  480.  1Ch    BYTE    number of pending beep functions (max 4) (see AH=3Ah/BP=0012h)
  481.  1Dh    BYTE    reserved
  482.  1Eh    WORD    next unused string index number
  483.  20h    ...    reserved
  484. SeeAlso: #2872
  485.  
  486. Format of HP EX-BIOS Driver Describe Record:
  487. Offset    Size    Description    (Table 2876)
  488.  00h 16 BYTEs    EX-BIOS driver header data (see #2872)
  489.  10h    BYTE    device GID type
  490.         bits 7-4: device type
  491.         bits 3-0: physical device link address
  492.  11h    BYTE    physical device ID (see #2878)
  493.  12h    WORD    logical device status bits (see #2877)
  494.  14h    BYTE    physical device vector number (driver ID / 6)
  495.  15h    BYTE    maximum number of axes reported (0-2)
  496.  16h    BYTE    device class
  497.         bits 7-4: current class
  498.         bits 3-0: default class
  499.  17h    BYTE    number of buttons/prompts
  500.         bits 7-4: number of prompts
  501.         bits 3-0: number of buttons
  502.  18h    BYTE    reserved
  503.  19h    BYTE    (physical devices only) maximum output burst length
  504.  1Ah    BYTE    (physical devices only) number of write registers
  505.  1Bh    BYTE    (physical devices only) number of read registers
  506.  1Ch    BYTE    button transition flags (bit 0 = button0, etc.)
  507.  1Dh    BYTE    current button states (bit 0 = button0, etc.)
  508.  1Eh    WORD    device resolution
  509.  20h    WORD    maximum x-axis count
  510.  22h    WORD    maximum y-axis count
  511.  24h    WORD    X position data for absolute devices
  512.  26h    WORD    Y position data for absolute devices
  513.  28h    WORD    X delta for relative devices
  514.  2Ah    WORD    Y delta for relative devices
  515.  2Ch    WORD    (logical devices only) X-axis scaling accumulator
  516.         (fraction of one logical unit)
  517.  2Eh    WORD    (logical devices only) Y-axis scaling accumulator
  518.         (fraction of one logical unit)
  519.  
  520. Bitfields for HP logical device status flags:
  521. Bit(s)    Description    (Table 2877)
  522.  15-5    reserved
  523.  4    event enabled
  524.  3    tracking enabled
  525.  2    clipping enabled
  526.  1    button error occurred
  527.  0    interrupt in progress
  528. SeeAlso: #2876
  529.  
  530. (Table 2878)
  531. Values for HP-HIL device ID:
  532.  00h-02h reserved
  533.  03h    Swiss-French keyboard
  534.  04h-06h reserved
  535.  07h    Canadian-English keyboard
  536.  08h-0Ah reserved
  537.  0Bh    Italian keyboard
  538.  0Ch    reserved
  539.  0Dh    Dutch keyboard
  540.  0Eh    Swedish keyboard
  541.  0Fh    German keyboard
  542.  10h-12h reserved
  543.  13h    Spanish keyboard
  544.  14h    reserved
  545.  15h    Belgian (Flemish) keyboard
  546.  16h    Finnish keyboard
  547.  17h    UK keyboard
  548.  18h    French-Canadian keyboard
  549.  19h    Swiss-German keyboard
  550.  1Ah    Nerwegian keyboard
  551.  1Bh    Frensh keyboard
  552.  1Ch    Danish keyboard
  553.  1Dh    Katakana keyboard
  554.  1Eh    Latin American-Spanish keyboard
  555.  1Fh    US-American keyboard
  556.  20h-2Bh reserved
  557.  2Ch-2Fh tone generator
  558.  30h-3Fh reserved
  559.  40h-5Bh reserved (character entry)
  560.  5Ch-5Fh barcode reader
  561.  60h-67h reserved (relative positions)
  562.  68h-6Bh mouse
  563.  6Ch-6Fh trackball
  564.  70h-7Fh reserved (relative positions)
  565.  80h-87h reserved (absolute positions)
  566.  88h-8Bh touchpad
  567.  8Ch-8Fh touch screen
  568.  90h-97h graphics tablet
  569.  98h-9Fh reserved (absolute positions)
  570.  A0h-BFh compressed keyboard (91-93 keys)
  571.  C0h-DFh extended keyboard (107-109 keys)
  572.  E0h-FFh standard keyboard (85-87 keys)
  573. --------N-6F01-------------------------------
  574. INT 6F - 10NET - LOGOFF
  575.     AH = 01h
  576.     DS:DX -> superstation ID or nulls (12 bytes)
  577. Return: CX = number of files closed
  578.     AX = status (see also #2867)
  579.         08FFh superstation ID not already logged in
  580. SeeAlso: AH=00h"10NET",AH=81h
  581. --------N-6F02-------------------------------
  582. INT 6F - 10NET - STATUS OF NODE
  583.     AH = 02h
  584.     DS:DX -> 512-byte status record (see #2880)
  585. Return:    CF clear if successful
  586.     CF set on error
  587.         AX = error code (see #2867)
  588. SeeAlso: INT 21/AX=5E01h"10NET"
  589.  
  590. (Table 2879)
  591. Values for 10NET station type:
  592.  00h    workstation
  593.  01h    superstation
  594.  02h    gateway station
  595.  03h    gateway active
  596.  04h    logged into multiple superstations
  597.  05h    reserved
  598.  
  599. Format of 10NET node status record:
  600. Offset    Size    Description    (Table 2880)
  601.  00h  8 BYTEs    user name (0 if none)
  602.  08h    BYTE    station type (see #2879)
  603.  09h 24 BYTEs    list of superstations logged into more than one superstation
  604.  21h 12 BYTEs    node ID
  605.  2Dh    WORD    message count for this station (send for user node, receive for
  606.           superstations)
  607. ---for superstations only---
  608.  2Fh    WORD    drives allocated (bit 0=A:, bit 1=B:,...)
  609.  31h    BYTE    user service flags (see #2881)
  610.  32h    BYTE    printers allocated (bit 0=LPT1,...)
  611.  33h    BYTE    number of unprinted spool files
  612.  34h    BYTE    number of opened files
  613.  35h    BYTE    number of logged on nodes
  614.  36h    BYTE    primary drive (1=A:)
  615.  37h    BYTE    reserved
  616.  38h  N BYTEs    list of logged on node IDs (each 12 bytes, max 37 IDs)
  617. 1F4h  3 BYTEs    time: sec/min/hrs
  618. 1F7h  3 BYTEs    date: day/mon/year-1980
  619.  
  620. Bitfields for 10NET user service flags:
  621. Bit(s)    Description    (Table 2881)
  622.  7    gate
  623.  6    print permit on
  624.  4    SUBMIT is on
  625.  3    mail waiting for node
  626.  2    calendar waiting for you
  627.  1    news waiting for you
  628.  0    mail waiting for you
  629. --------b-6F0200-----------------------------
  630. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_INIT" - START INITIALIZING DRIVER
  631.     AX = 0200h
  632.     BP = driver ID (see #2868)
  633.     BX = "last-used DS" value from HP global data area (see #2875)
  634. Return: AH = status (see #2871)
  635.     BX = new "last-used DS" value
  636.     BP,DS destroyed
  637. SeeAlso: AH=00h"HP Vectra",AX=0202h,AH=0Ah"F_INS_FIXOWNDS"
  638. --------b-6F0202-----------------------------
  639. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_START" - COMPLETE DRIVER INITIALIZ.
  640.     AX = 0202h
  641.     BP = driver ID (see #2868)
  642. Return: AH = status (see #2871)
  643.     BP,DS destroyed
  644. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0204h"HP Vectra"
  645. --------W-6F0204-----------------------------
  646. INT 6F C - MS Windows 3.0 - DOS APPLICATION SWITCH HOOK
  647.     AX = 0204h
  648. Return: AX = status
  649.         0000h switch is allowed
  650.         other switch not allowed
  651. Note:    intercepting this call will allow a DOS application to ensure that
  652.       Windows will not switch away from it.
  653. --------b-6F0204-----------------------------
  654. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_REPORT_STATE" - GET DRIVER STATE
  655.     AX = 0204h
  656.     BP = driver ID (see #2868)
  657. Return: AH = status (see #2871)
  658.     DX = device state from Logical Describe Record (see #2876,#2882)
  659.     BP,DS destroyed
  660. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0206h"HP Vectra"
  661.  
  662. Bitfields for HP Vectra V_HPHIL driver state:
  663. Bit(s)    Description    (Table 2882)
  664.  0    link configuration in progress
  665.  1    reserved
  666.  2    no devices attached
  667.  3    general failure
  668.  4,5    reserved
  669.  6    HP-HIL driver open
  670.  7    reserved
  671.  8    link has been reconfigured
  672.  9    error during output request
  673.  10    reserved
  674.  11    output request complete
  675.  12    timeout
  676.  13-15    reserved
  677. --------b-6F0206-----------------------------
  678. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_VERSION_DESC" - GET DRIVER VERSION
  679.     AX = 0206h
  680.     BP = driver ID (see #2868)
  681. Return: AH = status (see #2871)
  682.     BX = driver release date code
  683.         (BL = BCD years since 1960, BH = BCD week number within year)
  684.     CX = length of version string
  685.     ES:DI -> version string
  686.     BP,DS destroyed
  687. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0204h"HP Vectra",AX=0208h
  688. --------b-6F0208-----------------------------
  689. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_DEF_ATTR" - RESET TO DEFAULT ATTR
  690.     AX = 0208h
  691.     BP = driver ID (see #2868)
  692. Return: AH = status (see #2871)
  693.     BP,DS destroyed
  694. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=020Ah,AX=020Ch
  695. --------b-6F020A-----------------------------
  696. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_GET_ATTR" - GET CURRENT ATTRIBUTES
  697.     AX = 020Ah
  698.     BP = driver ID (see #2868)
  699. Return: AH = status (see #2871)
  700.     BX,CX = current attributes
  701.     BP,DS destroyed
  702.     ---for V_LTOUCH, V_LPOINTER---
  703.         BX = logical width
  704.         CX = logical height
  705. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Ch
  706. --------b-6F020C-----------------------------
  707. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_SET_ATTR" - SET DEVICE ATTRIBUTES
  708.     AX = 020Ch
  709.     BP = driver ID (see #2868)
  710.     BX,CX = new attributes
  711.     ---for V_LTOUCH, V_LPOINTER---
  712.         BX = new logical width
  713.         CX = new logical height
  714. Return: AH = status (see #2871)
  715.     BP,DS destroyed
  716. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Ah
  717. --------b-6F020E-----------------------------
  718. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_OPEN" - RESERVE DRIVER FOR ACCESS
  719.     AX = 020Eh
  720.     BP = driver ID (see #2868) for V_HPHIL, others
  721. Return: AH = status (see #2871)
  722.     BP,DS destroyed
  723. Desc:    place device in open state, which allows output to the device
  724. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=0210h
  725. --------b-6F0210-----------------------------
  726. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_CLOSE" - RELEASE DRIVER
  727.     AX = 0210h
  728.     BP = driver ID (see #2868) for V_HPHIL, others
  729. Return: AH = status (see #2871)
  730.     BP,DS destroyed
  731. Desc:    place device in closed state, which disallows output to the device
  732. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh
  733. --------b-6F0212-----------------------------
  734. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_TIMEOUT" - REPORT REQUESTED TIMEOUT
  735.     AX = 0212h
  736.     BP = driver ID (see #2868)
  737. Return: AH = status (see #2871)
  738.     BP,DS destroyed
  739. Desc:    report to driver that a previously-requested timeout interval has
  740.       expired
  741. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh,AX=0214h,AX=0216h
  742. --------b-6F0214-----------------------------
  743. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_INTERVAL" - 60 HZ INTERVAL EXPIRED
  744.     AX = 0214h
  745.     BP = driver ID (see #2868)
  746. Return: AH = status (see #2871)
  747.     BP,DS destroyed
  748. Desc:    report to driver that a previously-requested 60 Hz interval has
  749.       expired
  750. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh,AX=0212h,AX=0216h
  751. --------b-6F0216-----------------------------
  752. INT 6F - HP Vectra EX-BIOS - "F_SYSTEM SF_TEST" - PERFORM HARDWARE TEST
  753.     AX = 0216h
  754.     BP = driver ID (see #2868)
  755. Return: AH = status (see #2871)
  756.     BP,DS destroyed
  757.     ---on failure---
  758.     CX = length of reason string
  759.     ES:DI -> string describing error
  760. SeeAlso: AH=00h"HP Vectra",AX=0200h,AX=0208h,AX=020Eh,AX=0212h,AX=0214h
  761. --------N-6F03-------------------------------
  762. INT 6F - 10NET - GET ADDRESS OF CONFIGURATION TABLE
  763.     AH = 03h
  764.     DS:DI -> node ID (optional)
  765. Return: ES:BX -> configuration table (see #2883)
  766. SeeAlso: AH=13h,INT 21/AX=5E01h"10NET"
  767.  
  768. Format of 10NET configuration table:
  769. Offset    Size    Description    (Table 2883)
  770. -41    WORD    local device table address
  771. -39    WORD    extended network error mapping table address
  772. -37    WORD    shared device table address
  773. -35    WORD    mounted device table address
  774. -33    BYTE    receive buffer counter
  775. -32    BYTE    collect buffer counter
  776. -31    WORD    TUF address
  777. -29    BYTE    enable flag
  778. -28    BYTE    FCB keep flag
  779. -27    WORD    reserved
  780. ---up to here, 10NET v3.3---
  781. -25    WORD    count of dropped Send6F
  782. -23    WORD    buffer start address
  783. -21    WORD    comm driver base address
  784. -19    WORD    send/receive retry count
  785. -17    BYTE    number of 550ms loops before timeout
  786. -16    WORD    UFH address
  787. -14    WORD    CDIR address
  788. -12    WORD    LTAB address
  789. -10    WORD    SFH address
  790. -8    WORD    FTAB address
  791. -6    WORD    RLTAB address
  792. -4    WORD    SMI address
  793. -2    WORD    NTAB address
  794.  00h    WORD    address of first CT_DRV
  795.  02h    BYTE    number of DRV entries
  796.  03h  8 BYTEs    login name
  797.  0Bh 12 BYTEs    node ID (blank-padded)
  798.  17h  6 BYTEs    node address
  799.  1Dh    BYTE    flag
  800.  1Eh    BYTE    CT_CFLG (chat permit)
  801.         bit 1: sound bell
  802.         bit 0: CHAT permit
  803.  1Fh    BYTE    CT_PSFLG (see #2884)
  804.  20h    BYTE    in 10Net flag
  805.  21h    WORD    receive message count
  806.  23h    WORD    send message count
  807.  25h    WORD    retry count
  808.  27h    WORD    failed count
  809.  29h    WORD    driver errors
  810.  2Bh    WORD    dropped responses/CHATs
  811.  2Dh  9 BYTEs    LIST ID/NTAB address (3 entries--LPT1-3)
  812.  36h  6 BYTEs    AUX ID/NTAB address (2 entries--COM1-2)
  813.  3Ch    BYTE    active CB channel
  814.  3Dh    BYTE    received 6F messages on queue
  815.  3Eh  9 BYTEs    activity counters for channels 1-9
  816. ---beyond here, 10NET v3.3---
  817.  47h    BYTE    bit 0: RS232 gate
  818.         bit 1: Send6F gate (user set)
  819.  48h    DWORD    pointer into gate (user set)
  820.  4Ch    DWORD    pointer into 10Net send
  821.  50h  N WORDs    addresses of timer blocks
  822.  
  823. Bitfields for CT_PSFLG:
  824. Bit(s)    Description    (Table 2884)
  825.  5    PRINT permit
  826.  4    KB initiated
  827.  3    CHAT called FOXPTRM
  828.  2    SUBMIT active
  829.  1    SUBMIT received
  830.  0    SUBMIT permit
  831. --------N-6F04-------------------------------
  832. INT 6F - 10NET - SEND
  833.     AH = 04h
  834.     DS:BX -> send record (see #2885)
  835.     DS:DX -> data (max 1024 bytes)
  836. Return:    CF clear if successful
  837.     CF set on error
  838.         AX = error code (see #2867)
  839. SeeAlso: AH=05h,AH=09h,AH=0Ah
  840.  
  841. Format of 10NET send record:
  842. Offset    Size    Description    (Table 2885)
  843.  00h 12 BYTEs    receiving node's ID
  844.         if first byte has high-order bit set, message is directed to
  845.           the CT_RGATE vector at the receiver
  846.         if second byte is 00h, first byte is taken as a CB
  847.           channel number and delivered to all nodes on same channel
  848.  0Ch    WORD     length of data at DX
  849. --------b-6F04--BP0012-----------------------
  850. INT 6F - HP Vectra EX-BIOS - "F_INS_BASEHPVT" - GET HP_VECTOR_TABLE ADDRESS
  851.     AH = 04h
  852.     BP = 0012h (driver ID for V_SYSTEM)
  853. Return: AH = status (see #2871)
  854.     ES = segment of HP_VECTOR_TABLE (see also AH=00h"HP Vectra")
  855.     BP,DS destroyed
  856. SeeAlso: AH=00h"HP Vectra",AH=06h"F_INS_XCHGFIX",AH=08h"F_INS_XCHGRSVD"
  857. --------b-6F04--BP005A-----------------------
  858. INT 6F - HP Vectra EX-BIOS - "F_TRACK_INIT" - RESET TRACKING DRIVER TO DEFAULTS
  859.     AH = 04h
  860.     BP = 005Ah (driver ID for V_STRACK)
  861. Return: AH = status (see #2871)
  862.     BP,DS destroyed
  863. SeeAlso: AH=00h"HP Vectra",AH=06h"F_TRACK_ON",AH=08h"F_TRACK_OFF"
  864. SeeAlso: AH=0Ah"F_DEF_MASKS",AH=0Ch"F_SET_LIMITS_X"
  865. --------b-6F0400-----------------------------
  866. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_LOCK" - RESERVE SUB-ADDRESSES
  867.     AX = 0400h
  868.     BP = driver ID (see #2868)
  869.     DH,DL = major,minor address (optional)
  870. Return: AH = status (see #2871)
  871.     BP,DS destroyed
  872. Desc:    reserve specified sub-addresses on an already-allocated driver for
  873.       exclusive access
  874. Note:    this function is documented as present but unsupported in the drivers
  875.       V_LTABLET, V_LPOINTER, and V_LTOUCH
  876. SeeAlso: AH=02h"HP Vectra",AX=0402h"SF_UNLOCK"
  877. --------b-6F0400BP001E-----------------------
  878. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABLE_SVC" - UNMASK 8041 SVC INT
  879.     AX = 0400h
  880.     BP = 001Eh (driver ID for V_S8259)
  881. Return: AH = status (see #2871)
  882.     BP,DS destroyed
  883. SeeAlso: AH=00h"HP Vectra",AX=0402h"SF_DISABLE_SVC",AX=0404h"SF_ENABLE_KBD"
  884. SeeAlso: AX=0408h"SF_ENABLE_HPHIL"
  885. --------b-6F0400BP002A-----------------------
  886. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DEF_LINKS" - SET DEFAULT PARENTS
  887.     AX = 0400h
  888.     BP = 002Ah (driver ID for V_SINPUT)
  889. Return: AH = status (see #2871)
  890.     BP,DS destroyed
  891. Desc:    set the parent vectors in the physical device driver headers to their
  892.       system defaults
  893. SeeAlso: AH=00h"HP Vectra",AX=0402h/BP=002Ah,AX=0404h/BP=002Ah
  894. SeeAlso: AH=06h"F_INQUIRE"
  895. --------b-6F0400BP0054-----------------------
  896. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_ID_HP" - INSTALLATION CHECK
  897.     AX = 0400h
  898.     BP = 0054h (driver ID for V_SVIDEO)
  899.     ???
  900. Return: AH = status (see #2871)
  901.     BX = 4850h ('BP')
  902.     BP,DS destroyed
  903.     ???
  904. Note:    only partially documented
  905. SeeAlso: AX=0402h/BP=0054h,AX=0404h/BP=0054h,AX=0406h/BP=0054h
  906. SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054h
  907. --------b-6F0400BP00CC-----------------------
  908. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_MOUSE_COM" - INIT INT 33 HANDLER
  909.     AX = 0400h
  910.     BP = 00CCh (driver ID for V_LHPMOUSE)
  911. Return: AH = status (see #2871)
  912.     BP,DS destroyed
  913. SeeAlso: AH=00h"HP Vectra",AX=0402h/BP=00CCh
  914. --------b-6F0402-----------------------------
  915. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_UNLOCK" - RELEASE SUB-ADDRESSES
  916.     AX = 0402h
  917.     BP = driver ID (see #2868)
  918.     DH,DL = major,minor address (optional)
  919. Return: AH = status (see #2871)
  920.     BP,DS destroyed
  921. Desc:    release specified sub-addresses from exclusive access
  922. Note:    this function is documented as present but unsupported in the drivers
  923.       V_LTABLET, V_LPOINTER, and VLTOUCH
  924. SeeAlso: AH=02h"HP Vectra",AX=0400h"SF_LOCK"
  925. --------b-6F0402BP001E-----------------------
  926. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISABLE_SVC" - MASK 8041 SVC INT
  927.     AX = 0402h
  928.     BP = 001Eh (driver ID for V_S8259)
  929. Return: AH = status (see #2871)
  930.     BP,DS destroyed
  931. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=001Eh,AX=0406h/BP=001Eh
  932. SeeAlso: AX=040Ah/BP=001Eh
  933. --------b-6F0402BP002A-----------------------
  934. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_GET_LINKS" - GET DRIVER LINK FIELDS
  935.     AX = 0402h
  936.     BP = 002Ah (driver ID for V_SINPUT)
  937.     ES:SI -> buffer for link table (see #2886)
  938. Return: AH = status (see #2871)
  939.     ES:SI buffer filled
  940.     BP,DS destroyed
  941. Desc:    get the parent and child vectors for the seven supported physical
  942.       device drivers
  943. SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_DEF_LINKS",AX=0404h"SF_SET_LINKS"
  944. SeeAlso: AH=06h"F_INQUIRE"
  945.  
  946. Format of HP Vectra EX-BIOS driver link table:
  947. Offset    Size    Description    (Table 2886)
  948.  00h    BYTE    vector number of HP-HIL device #1's child
  949.  01h    BYTE    vector number of HP-HIL device #1's parent
  950.     ...
  951.  0Ch    BYTE    vector number of HP-HIL device #7's child
  952.  0Dh    BYTE    vector number of HP-HIL device #7's parent
  953. --------b-6F0402BP0054-----------------------
  954. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_GET_INFO" - GET DISPLAY INFO
  955.     AX = 0402h
  956.     BP = 0054h (driver ID for V_SVIDEO)
  957.     ???
  958. Return: AH = status (see #2871)
  959.     BP,DS destroyed
  960.     ???
  961. Note:    only partially documented
  962. SeeAlso: AX=0400h/BP=0054h,AX=0404h/BP=0054h,AX=0406h/BP=0054h
  963. SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054h
  964. --------b-6F0402BP00CC-----------------------
  965. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_MOUSE_COM" - FORCE INT 33 INIT
  966.     AX = 0402h
  967.     BP = 00CCh (driver ID for V_LHPMOUSE)
  968. Return: AH = status (see #2871)
  969.     BP,DS destroyed
  970. Desc:    set up INT 33 even if no mouse is installed
  971. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=00CCh
  972. --------b-6F0404-----------------------------
  973. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_TRACK_ON" - GRAPHICS CURSOR ON
  974.     AX = 0404h
  975.     BP = driver ID (see #2868) for V_LPOINTER, V_LTOUCH, V_LTABLET
  976. Return: AH = status (see #2871)
  977.     BP,DS destroyed
  978. Desc:    enables graphics cursor tracking of the logical device's movement
  979. SeeAlso: AH=00h"HP Vectra",AX=0400h,AX=0406h"SF_TRACK_OFF"
  980. --------b-6F0404BP001E-----------------------
  981. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABLE_KBD" - UNMASK 8041 OBF INT
  982.     AX = 0404h
  983.     BP = 001Eh (driver ID for V_S8259)
  984. Return: AH = status (see #2871)
  985.     BP,DS destroyed
  986. SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_ENABLE_SVC",AX=0406h"SF_DISABLE_KBD"
  987. SeeAlso: AX=0408h"SF_ENABLE_HPHIL"
  988. --------b-6F0404BP002A-----------------------
  989. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_SET_LINKS" - SET DRIVER LINK FIELDS
  990.     AX = 0404h
  991.     BP = 002Ah (driver ID for V_SINPUT)
  992.     ES:SI -> buffer containing link table (see #2886)
  993. Return: AH = status (see #2871)
  994.     BP,DS destroyed
  995. Desc:    specify the parent and child vectors for the seven supported physical
  996.       device drivers
  997. SeeAlso: AH=00h"HP Vectra",AX=0400h"SF_DEF_LINKS",AX=0402h"SF_GET_LINKS"
  998. SeeAlso: AH=06h"F_INQUIRE"
  999. --------b-6F0404BP0054-----------------------
  1000. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_SET_INFO" - SET EXT-CTRL INFO
  1001.     AX = 0404h
  1002.     BP = 0054h (driver ID for V_SVIDEO)
  1003.     ???
  1004. Return: AH = status (see #2871)
  1005.     BP,DS destroyed
  1006.     ???
  1007. Note:    only partially documented
  1008. SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0406h/BP=0054h
  1009. SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054h
  1010. --------b-6F0406-----------------------------
  1011. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_TRACK_OFF" - GRAPHICS CURSOR OFF
  1012.     AX = 0406h
  1013.     BP = driver ID (see #2868) for V_LPOINTER, V_LTOUCH, V_LTABLET
  1014. Return: AH = status (see #2871)
  1015.     BP,DS destroyed
  1016. Desc:    disables graphics cursor tracking of the logical device's movement
  1017. SeeAlso: AH=00h"HP Vectra",AX=0400h,AX=0404h"SF_TRACK_ON"
  1018. SeeAlso: AX=0408h"SF_CREATE_EVENT"
  1019. --------b-6F0406BP001E-----------------------
  1020. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISABLE_KBD" - MASK 8041 OBF INT
  1021.     AX = 0406h
  1022.     BP = 001Eh (driver ID for V_S8259)
  1023. Return: AH = status (see #2871)
  1024.     BP,DS destroyed
  1025. SeeAlso: AH=00h"HP Vectra",AX=0402h"SF_DISABLE_SVC",AX=0404h"SF_ENABLE_KBD"
  1026. SeeAlso: AX=040Ah"SF_DISABLE_HPHIL"
  1027. --------b-6F0406BP0054-----------------------
  1028. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_MOD_INFO" - SET EXT-CTRL REG
  1029.     AX = 0406h
  1030.     BP = 0054h (driver ID for V_SVIDEO)
  1031.     ???
  1032. Return: AH = status (see #2871)
  1033.     BP,DS destroyed
  1034.     ???
  1035. Note:    only partially documented
  1036. SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0404h/BP=0054h
  1037. SeeAlso: AX=0408h/BP=0054h,AX=040Ah/BP=0054h
  1038. --------b-6F0406BP0114-----------------------
  1039. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_RECONFIGURE" - RECONFIG LINK
  1040.     AX = 0406h
  1041.     BP = 0114h (driver ID for V_HPHIL)
  1042. Return: AH = status (see #2871)
  1043.     BP,DS destroyed
  1044. SeeAlso: AH=00h"HP Vectra",AX=020Eh,AX=0408h"SF_CRV_WR_PROMPTS"
  1045. SeeAlso: AX=0410h"SF_CRV_SELF_TEST"
  1046. --------b-6F0408-----------------------------
  1047. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CREATE_EVENT" - SET EVENT HANDLER
  1048.     AX = 0408h
  1049.     BP = driver ID (see #2868) for V_LPOINTER, V_LTOUCH, V_LTABLET
  1050.     ES:SI -> new event handler (see AH=00h"HP Vectra")
  1051.     DX = new handler's DS
  1052. Return: AH = status (see #2871)
  1053.     ES:SI -> old event handler
  1054.     DX = old handler's DS
  1055.     BP,DS destroyed
  1056. Desc:    specify routine to be called on logical device events
  1057. Note:    when events occur, the event handler is called with the same registers
  1058.       as the "F_ISR" function on AH=00h"HP Vectra"
  1059. SeeAlso: AH=00h"HP Vectra",AX=0400h,AX=0406h"SF_TRACK_OFF"
  1060. SeeAlso: AX=040Ah"SF_EVENT_ON",AX=040Ch"SF_EVENT_OFF",AH=06h"F_SAMPLE"
  1061. --------b-6F0408BP001E-----------------------
  1062. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABLE_HPHIL" - UNMASK HP-HIL INT
  1063.     AX = 0408h
  1064.     BP = 001Eh (driver ID for V_S8259)
  1065. Return: AH = status (see #2871)
  1066.     BP,DS destroyed
  1067. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=001Eh,AX=0404h/BP=001Eh
  1068. SeeAlso: AX=040Ah/BP=001Eh
  1069. --------b-6F0408BP0054-----------------------
  1070. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_GET_RES" - GET VIDMODE RESOLUTN
  1071.     AX = 0408h
  1072.     BP = 0054h (driver ID for V_SVIDEO)
  1073.     ???
  1074. Return: AH = status (see #2871)
  1075.     BP,DS destroyed
  1076.     ???
  1077. Note:    only partially documented
  1078. SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0404h/BP=0054h
  1079. SeeAlso: AX=0406h/BP=0054h,AX=040Ah/BP=0054h
  1080. --------b-6F0408BP0114-----------------------
  1081. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_WR_PROMPTS" - WRITE PROMPT
  1082.     AX = 0408h
  1083.     BP = 0114h (driver ID for V_HPHIL)
  1084.     BX = device address indicator (see #2887)
  1085.     DH = HP HIL device major address
  1086.     DL = prompt number
  1087. Return: AH = status (see #2871)
  1088.     BP,DS destroyed
  1089. SeeAlso: AH=00h"HP Vectra",AX=020Eh,AX=0406h/BP=0114h,AX=040Ah/BP=0114h
  1090.  
  1091. Bitfields for HP Vectra V_HPHIL device address indicator:
  1092. Bit(s)    Description    (Table 2887)
  1093.  15-14    reserved
  1094.  13    address in DH is valid (must be set, clear is reserved)
  1095.  12    valid value in DL
  1096.  11-0    reserved
  1097. --------b-6F040A-----------------------------
  1098. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_EVENT_ON" - ENABLE EVENT HANDLER
  1099.     AX = 040Ah
  1100.     BP = driver ID (see #2868) for V_LPOINTER, V_LTOUCH, V_LTABLET
  1101. Return: AH = status (see #2871)
  1102.     BP,DS destroyed
  1103. SeeAlso: AH=00h"HP Vectra",AX=0408h"SF_CREATE_EVENT",AX=040Ch"SF_EVENT_OFF"
  1104. SeeAlso: AX=040Eh"SF_CLIPPING_ON"
  1105. --------b-6F040ABP001E-----------------------
  1106. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISABLE_HPHIL" - MASK HP-HIL INT
  1107.     AX = 040Ah
  1108.     BP = 001Eh (driver ID for V_S8259)
  1109. Return: AH = status (see #2871)
  1110.     BP,DS destroyed
  1111. SeeAlso: AH=00h"HP Vectra",AX=0402h/BP=001Eh,AX=0406h/BP=001Eh
  1112. SeeAlso: AX=0408h/BP=001Eh
  1113. --------b-6F040ABP0054-----------------------
  1114. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_VID_SET_MODE" - SET VIDEO MODE
  1115.     AX = 040Ah
  1116.     BP = 0054h (driver ID for V_SVIDEO)
  1117.     ???
  1118. Return: AH = status (see #2871)
  1119.     BP,DS destroyed
  1120.     ???
  1121. Note:    only partially documented
  1122. SeeAlso: AX=0400h/BP=0054h,AX=0402h/BP=0054h,AX=0404h/BP=0054h
  1123. SeeAlso: AX=0406h/BP=0054h,AX=0408h/BP=0054h
  1124. --------b-6F040ABP00AE-----------------------
  1125. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CREATE_INTR" - CREATE INTERVAL ENTRY
  1126.     AX = 040Ah
  1127.     BP = 00AEh (driver ID for V_8041)
  1128.     BH = vector number of driver to be called regularly (vector addr / 6)
  1129. Return: AH = status (see #2871)
  1130.     BP,DS destroyed
  1131. Desc:    add a driver to the list (max eight) of drivers which will be called
  1132.       by the HP's 8041 at 60 Hz
  1133. Note:    the newly added entry will not be called until enabled with
  1134.       AX=040Eh/BP=00AEh
  1135. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  1136. SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  1137. --------b-6F040ABP0114-----------------------
  1138. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_WR_ACK" - ACKNOWLEDGE DEVICE
  1139.     AX = 040Ah
  1140.     BP = 0114h (driver ID for V_HPHIL)
  1141.     BX = device address indicator (see #2887)
  1142.     DH = HP HIL device major address
  1143.     DL = acknowledge number (specific if 01h-07h, generic otherwise)
  1144. Return: AH = status (see #2871)
  1145.     BP,DS destroyed
  1146. SeeAlso: AH=00h"HP Vectra",AX=0406h/BP=0114h,AX=040Ch/BP=0114h
  1147. --------b-6F040C-----------------------------
  1148. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_EVENT_OFF" - DISABLE EVENT HANDLER
  1149.     AX = 040Ch
  1150.     BP = driver ID (see #2868) for V_LPOINTER, V_LTOUCH, V_LTABLET
  1151. Return: AH = status (see #2871)
  1152.     BP,DS destroyed
  1153. SeeAlso: AH=00h"HP Vectra",AX=0408h"SF_CREATE_EVENT",AX=040Ah"SF_EVENT_ON"
  1154. --------b-6F040CBP00AE-----------------------
  1155. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DELET_INTR" - DELETE INTERVAL ENTRY
  1156.     AX = 040Ch
  1157.     BP = 00AEh (driver ID for V_8041)
  1158.     BH = vector number of driver to be removed (vector addr / 6)
  1159. Return: AH = status (see #2871)
  1160.     BP,DS destroyed
  1161. Desc:    remove a driver to the list (max eight) of drivers which will be called
  1162.       by the HP's 8041 at 60 Hz
  1163. SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=00AEh,AX=0410h/BP=00AEh
  1164. SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  1165. --------b-6F040CBP0114-----------------------
  1166. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_REPEAT" - SET KEY REPEAT RATE
  1167.     AX = 040Ch
  1168.     BP = 0114h (driver ID for V_HPHIL)
  1169.     BX = device address indicator (see #2887)
  1170.     DH = HP HIL device major address
  1171.     DL = repeat rate (00h = 30 Hz, 01h = 60 Hz)
  1172. Return: AH = status (see #2871)
  1173.     BP,DS destroyed
  1174. Note:    this function is only available if the driver is in the open state
  1175.       (see AX=020Eh"SF_OPEN")
  1176. SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=0114h,AX=040Eh/BP=0114h
  1177. --------b-6F040E-----------------------------
  1178. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLIPPING_ON" - ENABLE CLIPPING
  1179.     AX = 040Eh
  1180.     BP = driver ID (see #2868) for V_LPOINTER, V_LTOUCH, V_LTABLET
  1181. Return: AH = status (see #2871)
  1182.     BP,DS destroyed
  1183. Desc:    causes the physical device's motion to be clipped to prevent overflow
  1184.       or underflow of the logical position
  1185. SeeAlso: AH=00h"HP Vectra",AX=040Ah"SF_EVENT_ON",AX=0410h"SF_CLIPPING_OFF"
  1186. --------b-6F040EBP00AE-----------------------
  1187. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_ENABL_INTR" - START INTERRUPT SRVICE
  1188.     AX = 040Eh
  1189.     BP = 00AEh (driver ID for V_8041)
  1190.     BH = vector number of driver to be called regularly (vector addr / 6)
  1191. Return: AH = status (see #2871)
  1192.     BP,DS destroyed
  1193. Desc:    enable 60 Hz calling of a driver previously added to the list of
  1194.       drivers to be called by the HP's 8041
  1195. SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=00AEh,AX=0410h/BP=00AEh
  1196. SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  1197. --------b-6F040EBP0114-----------------------
  1198. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_DISABLE_REPEAT" - KEY REPT OFF
  1199.     AX = 040Eh
  1200.     BP = 0114h (driver ID for V_HPHIL)
  1201.     BX = device address indicator (see #2887)
  1202.     DH = HP HIL device major address
  1203. Return: AH = status (see #2871)
  1204.     BP,DS destroyed
  1205. Note:    this function is only available if the driver is in the open state
  1206.       (see AX=020Eh"SF_OPEN")
  1207. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=0114h,AX=0410h/BP=0114h
  1208. SeeAlso: AX=0416h/BP=0114h
  1209. --------b-6F0410-----------------------------
  1210. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLIPPING_OFF" - DISABLE CLIPPING
  1211.     AX = 0410h
  1212.     BP = driver ID (see #2868) for V_LPOINTER, V_LTOUCH, V_LTABLET
  1213. Return: AH = status (see #2871)
  1214.     BP,DS destroyed
  1215. Desc:    disables clipping of the physical device's motion, which may cause
  1216.       overflow or underflow of the logical position
  1217. SeeAlso: AH=00h"HP Vectra",AX=040Ah"SF_EVENT_ON",AX=040Eh"SF_CLIPPING_ON"
  1218. --------b-6F0410BP00AE-----------------------
  1219. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_DISBL_INTR" - END INTERRUPT SERVICE
  1220.     AX = 0410h
  1221.     BP = 00AEh (driver ID for V_8041)
  1222.     BH = vector number of driver (vector addr / 6)
  1223. Return: AH = status (see #2871)
  1224.     BP,DS destroyed
  1225. Desc:    disable 60 Hz interval calls to the specified driver
  1226. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  1227. SeeAlso: AX=0412h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  1228. --------b-6F0410BP0114-----------------------
  1229. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_SELF_TEST" - PERFORM SELFTEST
  1230.     AX = 0410h
  1231.     BP = 0114h (driver ID for V_HPHIL)
  1232.     BX = device address indicator (see #2887)
  1233.     DH = HP HIL device major address
  1234.     ES:SI -> buffer for result
  1235. Return: AH = status (see #2871)
  1236.     CX = number of bytes in buffer
  1237.     BP,DS destroyed
  1238. Note:    this function is only available if the driver is in the open state
  1239.       (see AX=020Eh"SF_OPEN")
  1240. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=0114h,AX=0412h/BP=0114h
  1241. --------b-6F0412BP00AE-----------------------
  1242. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_SET_RAMSW" - SET RAM SWITCH IN 8041
  1243.     AX = 0412h
  1244.     BP = 00AEh (driver ID for V_8041)
  1245. Return: AH = status (see #2871)
  1246.     BP,DS destroyed
  1247. Desc:    sets a flag in the 8041 indicating that a second 256K bank of RAM
  1248.       on the motherboard is enabled
  1249. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  1250. SeeAlso: AX=0414h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  1251. --------b-6F0412BP0114-----------------------
  1252. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_REPORT_STATUS" - GET DEVSTATUS
  1253.     AX = 0412h
  1254.     BP = 0114h (driver ID for V_HPHIL)
  1255.     BX = device address indicator (see #2887)
  1256.     DH = HP HIL device major address
  1257.     ES:SI -> 15-byte buffer for status
  1258. Return: AH = status (see #2871)
  1259.     CX = number of bytes returned in buffer
  1260.     BP,DS destroyed
  1261. Note:    this function is only available if the driver is in the open state
  1262.       (see AX=020Eh"SF_OPEN")
  1263. SeeAlso: AH=00h"HP Vectra",AX=0410h/BP=0114h,AX=0414h/BP=0114h
  1264. --------b-6F0414BP00AE-----------------------
  1265. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLR_RAMSW" - CLEAR 8041 RAM SWITCH
  1266.     AX = 0414h
  1267.     BP = 00AEh (driver ID for V_8041)
  1268. Return: AH = status (see #2871)
  1269.     BP,DS destroyed
  1270. Desc:    clears a flag in the 8041 indicating that a second 256K bank of RAM
  1271.       on the motherboard is enabled, causing the second bank to be disabled
  1272. Note:    this function should normally never be called
  1273. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  1274. SeeAlso: AX=0412h/BP=00AEh,AX=0418h/BP=00AEh,AX=041Ah/BP=00AEh
  1275. --------b-6F0414BP0114-----------------------
  1276. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CRV_REPORT_NAME" - GET DEV NAME
  1277.     AX = 0414h
  1278.     BP = 0114h (driver ID for V_HPHIL)
  1279.     BX = device address indicator (see #2887)
  1280.     DH = HP HIL device major address
  1281.     ES:SI -> 15-byte buffer for name
  1282. Return: AH = status (see #2871)
  1283.     CX = number of bytes returned in buffer
  1284.     BP,DS destroyed
  1285. Note:    this function is only available if the driver is in the open state
  1286.       (see AX=020Eh"SF_OPEN")
  1287. SeeAlso: AH=00h"HP Vectra",AX=0412h/BP=0114h
  1288. --------b-6F0416BP00AE-----------------------
  1289. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_SET_CRTSW" - SET CRT TO MULTIMODE
  1290.     AX = 0416h
  1291.     BP = 00AEh (driver ID for V_8041)
  1292. Return: AH = status (see #2871)
  1293.     BP,DS destroyed
  1294. Desc:    sets a flag in the 8041 indicating that the primary display is the
  1295.       Multimode graphics adapter (default)
  1296. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  1297. SeeAlso: AX=0412h/BP=00AEh,AX=0418h/BP=00AEh,AX=041Ah/BP=00AEh
  1298. --------b-6F0416BP0114-----------------------
  1299. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_KEYBOARD_REPEAT" - SET TYPEMATIC
  1300.     AX = 0416h
  1301.     BP = 0114h (driver ID for V_HPHIL)
  1302.     BH = what to set (00h typematic rate, 01h delay, 02h both)
  1303.     BL = flag (00h = non-CCP keypad, 01h = Cursor Control Pad only)
  1304.     DL = rate
  1305.         bits 7-4: delay value
  1306.         bits 3-0: typematic rate
  1307. Return: AH = status (see #2871)
  1308.     BP,DS destroyed
  1309. SeeAlso: AH=00h"HP Vectra",AX=040Eh/BP=0114h,AX=0418h/BP=0114h
  1310. --------b-6F0418BP00AE-----------------------
  1311. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_CLR_CRTSW" - SET CRT TO MONOCHROME
  1312.     AX = 0418h
  1313.     BP = 00AEh (driver ID for V_8041)
  1314. Return: AH = status (see #2871)
  1315.     BP,DS destroyed
  1316. Desc:    clears a flag in the 8041, indicating that the primary display is the
  1317.       monochrome adapter
  1318. SeeAlso: AH=00h"HP Vectra",AX=040Ch/BP=00AEh,AX=040Eh/BP=00AEh
  1319. SeeAlso: AX=0414h/BP=00AEh,AX=0416h/BP=00AEh,AX=041Ah/BP=00AEh
  1320. --------b-6F0418BP0114-----------------------
  1321. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_KEYBOARD_LED" - SET KEYBOARD LEDS
  1322.     AX = 0418h
  1323.     BP = 0114h (driver ID for V_HPHIL)
  1324.     BL = new LED states
  1325.         bit 0: scroll lock
  1326.         bit 1: NumLock
  1327.         bit 2: CapsLock
  1328. Return: AH = status (see #2871)
  1329.     BP,DS destroyed
  1330. SeeAlso: AH=00h"HP Vectra",AX=040Eh/BP=0114h,AX=0416h/BP=0114h
  1331. --------b-6F041ABP00AE-----------------------
  1332. INT 6F - HP Vectra EX-BIOS - "F_IO_CTRL SF_PASS_THRU" - SEND DATA BYTE TO 8041
  1333.     AX = 041Ah
  1334.     BP = 00AEh (driver ID for V_8041)
  1335.     BL = byte to send to 8041
  1336. Return: AH = status (see #2871)
  1337.     BP,DS destroyed
  1338. SeeAlso: AH=00h"HP Vectra",AX=040Ah/BP=00AEh,AX=040Eh/BP=00AEh
  1339. --------N-6F05-------------------------------
  1340. INT 6F - 10NET - RECEIVE
  1341.     AH = 05h
  1342.     CX = number of seconds before timeout
  1343.     DS:DX -> receive buffer (see #2888)
  1344. Return:    CF clear if successful
  1345.         AH = FEh if dequeued message is a CB message
  1346.     CF set on error
  1347.         AX = error code (see #2867)
  1348. SeeAlso: AH=04h"10NET"
  1349.  
  1350. Format of 10NET receive buffer:
  1351. Offset    Size    Description    (Table 2888)
  1352.  00h 12 BYTEs    sending node's ID
  1353.  0Ch    WORD    length of message
  1354.  0Eh  N BYTEs    message (maximum 1024 bytes)
  1355. --------b-6F06-------------------------------
  1356. INT 6F - HP Vectra EX-BIOS - "F_PUT_BYTE" - WRITE A BYTE OF DATA TO DEVICE
  1357.     AH = 06h
  1358.     BP = driver ID (see #2868) for V_HPHIL, others
  1359.     AL = value to output
  1360.     ---if driver is V_HPHIL---
  1361.     BX = device address indicator (see #2887)
  1362.     DH = HP HIL device major address
  1363.     DL = HP-HIL device register (00h-7Fh)
  1364. Return: AH = status (see #2871)
  1365.     BP,DS destroyed
  1366. Desc:    output a byte to a specific HP-HIL device register
  1367. Note:    this function is only available if the driver is in the open state
  1368.       (see AX=020Eh"SF_OPEN")
  1369. SeeAlso: AH=04h"HP Vectra",AH=08h"F_GET_BYTE",AH=0Ah"F_PUT_BUFFER"
  1370. --------b-6F06-------------------------------
  1371. INT 6F - HP Vectra EX-BIOS - "F_SAMPLE" - POLL CURRENT ABSOLUTE POSITION
  1372.     AH = 06h
  1373.     BP = driver ID (see #2868) for V_LTOUCH, V_LPOINTER, V_LTABLET, etc.
  1374. Return: AH = status (see #2871)
  1375.     BX = current logical X position
  1376.     CX = current logical Y position
  1377.     DL = button transitions (bit N = button N state has changed)
  1378.     DH = current button states (bit N = current button N state)
  1379.     ES:0000h -> logical device's Describe Record (see #2876)
  1380.     BP,DS destroyed
  1381. SeeAlso: AH=00h"HP Vectra",AX=040Ah"SF_EVENT_ON",AX=040Eh"SF_CLIPPING_ON"
  1382. --------b-6F06--BP0012-----------------------
  1383. INT 6F - HP Vectra EX-BIOS - "F_INS_XCHGFIX" - EXCH VALUES WITH FIXED VECTOR
  1384.     AH = 06h
  1385.     BP = 0012h (driver ID for V_SYSTEM)
  1386.     BX = vector address
  1387.     DX = new value for DS
  1388.     ES:DI -> new CS:IP entry point
  1389. Return: AH = status (see #2871)
  1390.     DX = old value for DS
  1391.     ES:DI -> old CS:IP entry point
  1392.     BP,DS destroyed
  1393. Desc:    replace an existing EX-BIOS driver at a fixed HPVT location without
  1394.       initialization
  1395. SeeAlso: AH=00h"HP Vectra",AH=04h"F_INS_BASEHPVT",AH=08h"F_INS_XCHGRSVD"
  1396. SeeAlso: AH=0Ah"F_INS_XCHGFREE",AH=0Ch"F_INS_FIXOWNDS"
  1397. --------b-6F06--BP002A-----------------------
  1398. INT 6F - HP Vectra EX-BIOS - "F_INQUIRE" - GET DRIVER PHYSICAL DESCRIBE RECORD
  1399.     AH = 06h
  1400.     BP = 002Ah (driver ID for V_SINPUT)
  1401.     AL = HP-HIL physical device number (01h-07h)
  1402. Return: AH = status (see #2871)
  1403.     ES:SI -> physical describe record for driver
  1404.     BP,DS destroyed
  1405. Note:    the returned physical describe record must not be modified
  1406. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=08h/BP=002Ah,AH=0Ah/BP=002Ah
  1407. SeeAlso: AH=0Ch/BP=002Ah
  1408. --------b-6F06--BP005A-----------------------
  1409. INT 6F - HP Vectra EX-BIOS - "F_TRACK_ON" - ENABLE CURSOR TRACKING
  1410.     AH = 06h
  1411.     BP = 005Ah (driver ID for V_STRACK)
  1412. Return: AH = status (see #2871)
  1413.     BP,DS destroyed
  1414. SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=08h"F_TRACK_OFF"
  1415. SeeAlso: AH=0Ah"F_DEF_MASKS",AH=0Ch"F_SET_LIMITS_X"
  1416. --------N-6F07-------------------------------
  1417. INT 6F - 10NET - LOCK HANDLE
  1418.     AH = 07h
  1419.     BX = file handle
  1420.     CX:DX = starting offset in file
  1421.     SI = record length
  1422. Return:    CF clear if successful
  1423.     CF set on error
  1424.         AX = error code (see also AH=00h)
  1425.         0002h file not found
  1426. SeeAlso: AH=08h"10NET",AH=0Fh,INT 21/AH=5Ch
  1427. --------N-6F08-------------------------------
  1428. INT 6F - 10NET - UNLOCK HANDLE
  1429.     AH = 08h
  1430.     BX = file handle
  1431.     AL = mode
  1432.         00h unlock all
  1433.         01h unlock record at CX:DX
  1434. Return:    CF clear if successful
  1435.     CF set on error
  1436.         AX = error code (see also AH=00h)
  1437.         0002h file not found
  1438. SeeAlso: AH=07h,AH=0Fh,INT 21/AH=5Ch
  1439. --------b-6F08-------------------------------
  1440. INT 6F - HP Vectra EX-BIOS - "F_GET_BYTE" - READ A BYTE OF DATA FROM DEVICE
  1441.     AH = 08h
  1442.     BP = driver ID (see #2868) for V_HPHIL (0114h), others
  1443.     ---if device is V_HPHIL---
  1444.     BX = device address indicator (see #2887)
  1445.     DH = HP HIL device major address
  1446.     DL = HP-HIL device register (00h-7Fh)
  1447. Return: AH = status (see #2871)
  1448.     AL = value read from device
  1449.     BP,DS destroyed
  1450. Desc:    generic read-byte function; for driver V_HPHIL, retrieves the value
  1451.       of a specific HP-HIL device register
  1452. Note:    this function is only available if the driver is in the open state
  1453.       (see AX=020Eh"SF_OPEN")
  1454. SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BUFFER",AH=0Ch"F_GET_BUFFER"
  1455. --------b-6F08--BP0012-----------------------
  1456. INT 6F - HP Vectra EX-BIOS - "F_INS_XCHGRSVD" - EXCH VALUES WITH RESRVED VECTOR
  1457.     AH = 08h
  1458.     BP = 0012h (driver ID for V_SYSTEM)
  1459.     DX = new value for DS
  1460.     ES:DI -> new CS:IP entry point
  1461. Return: AH = status (00h,F6h) (see also #2871)
  1462.         00h successful
  1463.         BX = vector address used
  1464.         DX = old value for DS
  1465.         ES:DI -> old CS:IP entry point
  1466.     BP,DS destroyed
  1467. Desc:    exchange the supplied entry point and DS with the values in the next
  1468.       reserved entry in the HP_VECTOR_TABLE
  1469. Note:    returns AH=F6h if no more reserved vectors are available
  1470. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=0Ah/BP=0012h
  1471. SeeAlso: AH=0Ch/BP=0012h
  1472. --------b-6F08--BP002A-----------------------
  1473. INT 6F - HP Vectra EX-BIOS - "F_INQUIRE_ALL" - GET DRIVER STATUS TABLE
  1474.     AH = 08h
  1475.     BP = 002Ah (driver ID for V_SINPUT)
  1476.     ES:SI -> buffer for device status table (see #2889)
  1477. Return: AH = status (see #2871)
  1478.     ES:SI buffer filled
  1479.     BP,DS destroyed
  1480. Note:    the returned physical describe record must not be modified
  1481. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=06h/BP=002Ah,AH=0Ah/BP=002Ah
  1482. SeeAlso: AH=0Ch/BP=002Ah
  1483.  
  1484. Format of HP Vectra HP-HIL physical device status table:
  1485. Offset    Size    Description    (Table 2889)
  1486.  00h    BYTE    status for HP-HIL device #1
  1487.         bit 0: device present
  1488.         bits 7-2 reserved
  1489.  01h    BYTE    device ID for HP-HIL device #1
  1490.     ...
  1491.  0Ch    BYTE    status for HP-HIL device #7
  1492.  0Dh    BYTE    device ID for HP-HIL device #7
  1493. --------b-6F08--BP005A-----------------------
  1494. INT 6F - HP Vectra EX-BIOS - "F_TRACK_OFF" - DISABLE CURSOR TRACKING
  1495.     AH = 08h
  1496.     BP = 005Ah (driver ID for V_STRACK)
  1497. Return: AH = status (see #2871)
  1498.     BP,DS destroyed
  1499. Note:    also removes the graphics cursor sprite from the screen
  1500. SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=06h"F_TRACK_ON"
  1501. SeeAlso: AH=0Ah"F_DEF_MASKS",AH=0Ch"F_SET_LIMITS_X"
  1502. --------N-6F09-------------------------------
  1503. INT 6F - 10NET - SUBMIT
  1504.     AH = 09h
  1505.     DS:BX -> submit record (see #2890)
  1506. SeeAlso: AH=04h"10NET"
  1507.  
  1508. Format of 10NET submit record:
  1509. Offset    Size    Description    (Table 2890)
  1510.  00h 12 BYTEs    destination node ID (must be logged in)
  1511.  0Ch    WORD    length+2 of following 'command line' text
  1512.  0Eh  N BYTEs    command line text (<=100 bytes), system adds CR
  1513. --------N-6F0A-------------------------------
  1514. INT 6F - 10NET - CHAT
  1515.     AH = 0Ah
  1516.     DS:BX -> control parameters (see #2891)
  1517.     DS:DX -> chat message (see #2892)
  1518. SeeAlso: AH=04h"10NET",AH=8Ah
  1519.  
  1520. Format of 10NET chat control parameters:
  1521. Offset    Size    Description    (Table 2891)
  1522.  00h  8 BYTEs    sender ID, defaults to node's userID if nulls
  1523.  08h  8 BYTEs    destination user ID, 'EVERYONE' may be used
  1524.  10h 12 BYTEs    destination node ID
  1525.  
  1526. Format of 10NET chat message:
  1527. Offset    Size    Description    (Table 2892)
  1528.  00h    WORD    length+2 of following text
  1529.  02h  N BYTEs    text, max 101 bytes
  1530. --------b-6F0A-------------------------------
  1531. INT 6F - HP Vectra EX-BIOS - "F_PUT_BUFFER" - WRITE A BUFFER TO DEVICE
  1532.     AH = 0Ah
  1533.     BP = driver ID (see #2868) for V_HPHIL (0114h), others
  1534.     CX = number of bytes to write
  1535.     ES:DI -> buffer containing data
  1536.     ---if driver is V_HPHIL---
  1537.     BX = device address indicator (see #2887)
  1538.     DH = HP HIL device major address
  1539.     DL = HP-HIL device register (00h-7Fh)
  1540. Return: AH = status (see #2871)
  1541.     CX = number of unwritten bytes left in buffer
  1542.     BP,DS destroyed
  1543. SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BLOCK",AH=0Ch"F_GET_BUFFER"
  1544. SeeAlso: AH=0Eh"F_PUT_WORD"
  1545. --------b-6F0A-------------------------------
  1546. INT 6F - HP Vectra EX-BIOS - "F_PUT_BLOCK" - WRITE BLOCKS TO DEVICE
  1547.     AH = 0Ah
  1548.     BP = driver ID (see #2868) for block device
  1549.     DH = device major number
  1550.     DL = device minor number
  1551.     ES:DI -> command block (see #2893)
  1552. Return: AH = status (see #2871)
  1553.     BX = operation status
  1554.     BP,DS destroyed
  1555. SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BUFFER",AH=0Ch"F_GET_BUFFER"
  1556. SeeAlso: AH=0Eh"F_PUT_WORD"
  1557.  
  1558. Format of HP Vectra F_PUT_BLOCK/F_GET_BLOCK command block:
  1559. Offset    Size    Description    (Table 2893)
  1560.  00h    DWORD    data transfer address
  1561.  04h    WORD    number of blocks
  1562.  06h    DWORD    block address (some devices only use low word)
  1563. --------b-6F0A--BP0012-----------------------
  1564. INT 6F - HP Vectra EX-BIOS - "F_INS_XCHGFREE" - EXCH VALUES WITH FREE VECTOR
  1565.     AH = 0Ah
  1566.     BP = 0012h (driver ID for V_SYSTEM)
  1567.     DX = new value for DS
  1568.     ES:DI -> new CS:IP entry point
  1569. Return: AH = status (00h,F6h) (see also #2871)
  1570.         00h successful
  1571.         BX = vector address used
  1572.         DX = old value for DS
  1573.         ES:DI -> old CS:IP entry point
  1574.     BP,DS destroyed
  1575. Desc:    exchange the supplied entry point and DS with the values in the next
  1576.       free entry in the HP_VECTOR_TABLE
  1577. Note:    returns AH=F6h if no more reserved vectors are available
  1578. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=08h/BP=0012h
  1579. SeeAlso: AH=0Ch/BP=0012h
  1580. --------b-6F0A--BP002A-----------------------
  1581. INT 6F - HP Vectra EX-BIOS - "F_INQUIRE_FIRST" - GET PHYSICAL DRIVER VECTOR
  1582.     AH = 0Ah
  1583.     BP = 002Ah (driver ID for V_SINPUT)
  1584. Return: AH = status (see #2871)
  1585.     BX = vector address for first HP-HIL device
  1586.     BP,DS destroyed
  1587. Note:    all seven HP-HIL devices use consecutive vectors in the
  1588.       HP_VECTOR_TABLE
  1589. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=06h/BP=002Ah,AH=08h/BP=002Ah
  1590. SeeAlso: AH=0Ch/BP=002Ah
  1591. --------b-6F0A--BP005A-----------------------
  1592. INT 6F - HP Vectra EX-BIOS - "F_DEF_MASKS" - DEFINE GRAPHICS CURSOR MASKS
  1593.     AH = 0Ah
  1594.     BP = 005Ah (driver ID for V_STRACK)
  1595.     BH = width of save area in bytes
  1596.     BL = hot-spot X coordinate
  1597.     CH = height in scan lines
  1598.     CL = hot-spot Y coordinate
  1599.     ES:SI -> sprite mask (screen mask followed by XOR sprite mask)
  1600. Return: AH = status (see #2871)
  1601.     BP,DS destroyed
  1602. Note:    the save area is one byte wider than the actual sprite mask; the total
  1603.       size of the sprite is at most 144 bytes
  1604. SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=08h"F_TRACK_OFF"
  1605. SeeAlso: AH=0Ch"F_SET_LIMITS_X",AH=10h"F_PUT_SPRITE",AH=12h"F_REMOVE_SPRITE"
  1606. --------N-6F0B-------------------------------
  1607. INT 6F - 10NET - LOCK SEMAPHORE, RETURN IMMEDIATELY
  1608.     AH = 0Bh
  1609.     AL = drive number or 0
  1610.     ES:SI = Ethernet address or 0
  1611.     DS:BX -> 31-byte ASCIZ semaphore name
  1612. Return: AL = status (see #2894)
  1613. Note:    same as INT 60/AH=12h
  1614. SeeAlso: AH=0Ch"10NET",INT 60/AH=12h
  1615.  
  1616. (Table 2894)
  1617. Values for 10NET status:
  1618.  00h    successful
  1619.  01h    semaphore currently locked
  1620.  02h    server not responding
  1621.  03h    invalid semaphore name
  1622.  04h    semaphore list is full
  1623.  05h    invalid drive ID
  1624.  06h    invalid Ethernet address
  1625.  07h    not logged in
  1626.  08h    write to network failed
  1627.  09h    semaphore already logged in this CPU
  1628. SeeAlso: #2867
  1629. Index:    error codes;10-Net|10-Net;error codes
  1630. --------N-6F0C-------------------------------
  1631. INT 6F - 10NET - UNLOCK SEMAPHORE
  1632.     AH = 0Ch
  1633.     AL = drive number or 0
  1634.     ES:SI = Ethernet address or 0
  1635.     DS:BX -> 31-byte ASCIZ semaphore name
  1636. Return: AL = status (see also #2894)
  1637.         01h semaphore not locked
  1638. Note:    same as INT 60/AH=13h
  1639. SeeAlso: AH=0Bh,INT 60/AH=13h
  1640. --------b-6F0C-------------------------------
  1641. INT 6F - HP Vectra EX-BIOS - "F_GET_BUFFER" - READ A BUFFER OF DATA FROM DEVICE
  1642.     AH = 0Ch
  1643.     BP = driver ID (see #2868) for V_HPHIL (0114h), others
  1644.     CX = number of bytes or blocks to read
  1645.     DS:SI -> buffer for received data
  1646. Return: AH = status (see #2871 at AH=00h"HP Vectra")
  1647.     BP,DS destroyed
  1648. SeeAlso: AH=08h"F_GET_BYTE",AH=0Ah"F_PUT_BUFFER",AH=0Ch"F_GET_BLOCK"
  1649. SeeAlso: AH=10h"F_GET_WORD"
  1650. --------b-6F0C-------------------------------
  1651. INT 6F - HP Vectra EX-BIOS - "F_GET_BLOCK" - READ BLOCKS OF DATA FROM DEVICE
  1652.     AH = 0Ch
  1653.     BP = driver ID (see #2868)
  1654.     DH = device major number
  1655.     DL = device minor number
  1656.     ES:DI -> command block (see #2893)
  1657. Return: AH = status (see #2871 at AH=00h"HP Vectra")
  1658.     BX = operation status
  1659.     BP,DS destroyed
  1660. SeeAlso: AH=08h"F_GET_BYTE",AH=0Ah"F_PUT_BLOCK",AH=0Ch"F_GET_BUFFER"
  1661. SeeAlso: AH=10h"F_GET_WORD"
  1662. --------b-6F0C--BP0012-----------------------
  1663. INT 6F - HP Vectra EX-BIOS - "F_INS_FIXOWNDS" - INSTALL VALUES IN FIXED VECTOR
  1664.     AH = 0Ch
  1665.     BP = 0012h (driver ID for V_SYSTEM)
  1666.     BX = vector address used
  1667.     ES:DI -> new CS:IP entry point
  1668. Return: AH = status (00h) (see #2871)
  1669.     BP,DS destroyed
  1670. Note:    on installation, the given entry point will be invoked with an SF_INIT
  1671.       call (see AX=0200h"SF_INIT"), which should return the routine's DS
  1672.       in BX.  If the SF_INIT call returns with error code FEh, the power-on
  1673.       self-test sequence will be called.
  1674. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=08h/BP=0012h
  1675. SeeAlso: AH=0Eh/BP=0012h,AH=12h/BP=0012h
  1676. --------b-6F0C--BP002A-----------------------
  1677. INT 6F - HP Vectra EX-BIOS - "F_INQUIRE_ENTRY" - GET GID DRIVER ENTRY POINT
  1678.     AH = 0Ch
  1679.     BP = 002Ah (driver ID for V_SINPUT)
  1680. Return: AH = status (see #2871)
  1681.     ES:BX -> physical GID driver CS:IP
  1682.     BP,DS destroyed
  1683. SeeAlso: AH=00h"HP Vectra",AX=0400h/BP=002Ah,AH=06h/BP=002Ah,AH=08h/BP=002Ah
  1684. SeeAlso: AH=0Ah/BP=002Ah
  1685. --------b-6F0C--BP005A-----------------------
  1686. INT 6F - HP Vectra EX-BIOS - "F_SET_LIMITS_X" - SET HORIZONTAL TRACKING LIMITS
  1687.     AH = 0Ch
  1688.     BP = 005Ah (driver ID for V_STRACK)
  1689.     CX = minimum X coordinate
  1690.     DX = maximum X coordinate
  1691. Return: AH = status (see #2871)
  1692.     BP,DS destroyed
  1693. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=005Ah,AH=08h/BP=005Ah,AH=0Eh/BP=005Ah
  1694. SeeAlso: AH=10h/BP=005Ah,AH=12h/BP=005Ah,INT 33/AX=0007h
  1695. --------N-6F0D-------------------------------
  1696. INT 6F - 10NET - "WHO" - ENUMERATE USERS ON NETWORK
  1697.     AH = 0Dh
  1698.     AL = type code
  1699.         01h return superstations only
  1700.         02h return non-superstations only
  1701.         otherwise return all
  1702.     CX = length of data buffer
  1703.     DS:DX -> array of records to be filled (see #2895)
  1704. Return: CL = number of records returned (responding stations)
  1705. SeeAlso: AH=16h,AH=8Dh
  1706.  
  1707. Format of station record:
  1708. Offset    Size    Description    (Table 2895)
  1709.  00h 12 BYTEs    node ID
  1710.  0Ch    BYTE    station flags (see #2896)
  1711. ---if AL = 01h---
  1712.  0Dh    BYTE    version number
  1713.  0Eh    WORD    level number of 10Net software in responding node
  1714. ---if AL = 02h---
  1715.  0Dh  8 BYTEs    user ID
  1716.  15h    BYTE    version number
  1717.  16h    WORD    level number
  1718.  
  1719. Bitfields for station flags:
  1720. Bit(s)    Description    (Table 2896)
  1721.  1    workstation
  1722.  2    superstation
  1723.  3    xgate
  1724.  4    active gate
  1725. --------N-6F0E-------------------------------
  1726. INT 6F - 10NET - SPOOL/PRINT
  1727.     AH = 0Eh
  1728.     DS:DX -> spool/print record (see #2898)
  1729. Return:    CF clear if successful
  1730.     CF set on error
  1731.         AX = error code (see also #2867)
  1732.         17FFh device not mounted
  1733.         18FFh already spooling to named device
  1734.  
  1735. (Table 2897)
  1736. Values for 10NET spooler operation code:
  1737.  0000h    initiate spool
  1738.  0001h    abort print
  1739.  0002h    close spool
  1740.  0003h    delete spool
  1741.  0004h    print
  1742.  0005h    get report info
  1743.  0006h    set chat template
  1744.  0007h    queue
  1745.  0008h    return queue
  1746.  0009h    queue non-spooled file for printing
  1747.  
  1748. Format of 10NET Spool/Print record:
  1749. Offset    Size    Description    (Table 2898)
  1750.  00h    WORD    operation code (see #2897)
  1751.  02h 11 BYTEs    file name in FCB format
  1752. ---if operation code = 00h or 06h---
  1753.  0Dh    BYTE    notification flags (see #2899)
  1754.  0Eh    BYTE    days to keep (FFh=forever)
  1755.  0Fh    BYTE    bits 0,1: device (1=LPT1)
  1756.         bits 4-7: remote drive to store spool file (1=A,...)
  1757.  10h    WORD    length of following data area
  1758.  12h  N BYTEs    up to 64 bytes of description
  1759. ---if operation code = 03h---
  1760.  0Dh  8 BYTEs    user ID to associate with filename
  1761. ---if operation code = 04h---
  1762.  0Dh    WORD    block number
  1763.  0Fh  8 BYTEs    user ID to associate with filename
  1764. ---if operation code = 05h---
  1765.  0Dh    BYTE    RRN to start retrieve
  1766.  0Eh    BYTE    bits 0,1: local print device (LPTx)
  1767.         bit 3: if set, return entries for all users
  1768.  0Fh    WORD    length of following area
  1769.  11h  N BYTEs    up to 1500 bytes to receive $SCNTL records returned
  1770. ---if operation code = 07h---
  1771.  0Dh    BYTE    queue number
  1772.  0Eh    BYTE    bits 0,1: local print device (LPTx)
  1773.  0Fh    WORD    number of bytes of test print to be done
  1774.  11h    BYTE    code:
  1775.         01h print device
  1776.         02h test print count
  1777.         03h prn
  1778. ---if operation code = 08h---
  1779.  0Dh    BYTE    queue location or $SCNTL location to start access
  1780.         returns next item for access:
  1781.             00h-7Fh queued items
  1782.             80h-FEh non-queued, non-printed items
  1783.             FFh    no more items
  1784.  0Eh    WORD    unused
  1785.  10h    WORD    length of following area
  1786.  12h  N BYTEs    up to 64 bytes to receive $SCNTL records (see #2900)
  1787. ---if operation code = 09h---
  1788.  0Dh  3 BYTEs    unused
  1789.  10h  N BYTEs    path to non-spooled file to be queued for printing
  1790.  
  1791. Bitfields for notification flags:
  1792. Bit(s)    Description    (Table 2899)
  1793.  7    queue to top
  1794.  6    do ID page
  1795.  5    no form feed
  1796.  4    reserved
  1797.  3    explicit queuing only
  1798.  2    notify at print completion
  1799.  1    notify server operator, with reply
  1800.  0    notify at print start
  1801.  
  1802. Format of 10NET $SCNTL record:
  1803. Offset    Size    Description    (Table 2900)
  1804.  00h  8 BYTEs    user ID
  1805.  08h 11 BYTEs    filename in FCB format
  1806.  13h  6 BYTEs    node ID
  1807.  19h  3 BYTEs    creation date
  1808.  1Ch    BYTE    notification flags (see #2899)
  1809.  1Dh    BYTE    retention time in days
  1810.  1Eh    BYTE    printing device (LPTx)
  1811.  1Fh  3 BYTEs    date last printed (0 = never)
  1812.  22h    BYTE    device containing spoolfile
  1813.  23h    WORD    bytes to print for test print
  1814.  25h    WORD    block number to start print
  1815.  27h    BYTE    reserved
  1816. --------b-6F0E-------------------------------
  1817. INT 6F - HP Vectra EX-BIOS - "F_PUT_WORD" - WRITE WORD OF DATA TO DEVICE
  1818.     AH = 0Eh
  1819.     BP = driver ID (see #2868)
  1820.     DX = data word
  1821. Return: AH = status (see #2871 at AH=00h"HP Vectra")
  1822.     BP,DS destroyed
  1823. SeeAlso: AH=06h"F_PUT_BYTE",AH=0Ah"F_PUT_BUFFER",AH=10h"F_GET_WORD"
  1824. --------b-6F0E-------------------------------
  1825. INT 6F - HP Vectra EX-BIOS - "F_PUT_WORD" - WRITE A WORD OF DATA
  1826.     AH = 0Eh
  1827.     BP = driver ID (see #2868)
  1828.     ??? details not yet available
  1829. Return: ???
  1830. SeeAlso: AH=06h"HP Vectra",AH=0Ah"HP Vectra",AH=10h"HP Vectra"
  1831. --------b-6F0E--BP0012-----------------------
  1832. INT 6F - HP Vectra EX-BIOS - "F_INS_FIXGETDS" - INSTALL VALUES IN FIXED VECTOR
  1833.     AH = 0Eh
  1834.     BP = 0012h (driver ID for V_SYSTEM)
  1835.     BX = vector address used
  1836.     ES:DI -> new CS:IP entry point
  1837. Return: AH = status (00h) (see #2871)
  1838.     BP,DS destroyed
  1839. Note:    on installation, the given entry point will be invoked with an SF_INIT
  1840.       call (see AX=0200h"SF_INIT"), with the "last used DS" value in BX;
  1841.       the routine should adjust BX and return the new value.  If the
  1842.       SF_INIT call returns with error code FEh, the power-on self-test
  1843.       sequence will be called.
  1844. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h,AH=0Ch/BP=0012h
  1845. SeeAlso: AH=10h/BP=0012h,AH=14h/BP=0012h
  1846. --------b-6F0E--BP005A-----------------------
  1847. INT 6F - HP Vectra EX-BIOS - "F_SET_LIMITS_Y" - SET VERTICAL TRACKING LIMITS
  1848.     AH = 0Eh
  1849.     BP = 005Ah (driver ID for V_STRACK)
  1850.     CX = minimum Y coordinate
  1851.     DX = maximum Y coordinate
  1852. Return: AH = status (see #2871)
  1853.     BP,DS destroyed
  1854. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=005Ah,AH=08h/BP=005Ah,AH=0Ch/BP=005Ah
  1855. SeeAlso: AH=10h/BP=005Ah,AH=12h/BP=005Ah,INT 33/AX=0008h
  1856. --------N-6F0F-------------------------------
  1857. INT 6F - 10NET v5.0 - "RM LOCK" - ???
  1858.     AH = 0Fh
  1859.     ???
  1860. Return: ???
  1861. SeeAlso: AH=07h,AH=08h"10NET"
  1862. --------N-6F10-------------------------------
  1863. INT 6F - 10NET - ATTACH/DETACH PRINTER
  1864.     AH = 10h
  1865.     AL = subfunction
  1866.         00h initiate spooling if LPT1 is mounted
  1867.         01h terminate spooling if LPT1 is mounted
  1868. SeeAlso: INT 21/AX=5D08h
  1869. --------b-6F0E-------------------------------
  1870. INT 6F - HP Vectra EX-BIOS - "F_GET_WORD" - READ WORD OF DATA FROM DEVICE
  1871.     AH = 0Eh
  1872.     BP = driver ID (see #2868)
  1873. Return: AH = status (see #2871 at AH=00h"HP Vectra")
  1874.     DX = data word
  1875.     BP,DS destroyed
  1876. SeeAlso: AH=08h"F_GET_BYTE",AH=0Ch"F_GET_BUFFER",AH=0Eh"F_PUT_WORD"
  1877. --------b-6F10--BP0012-----------------------
  1878. INT 6F - HP Vectra EX-BIOS - "F_INS_FIXGLBDS" - INSTALL VALUES IN FIXED VECTOR
  1879.     AH = 10h
  1880.     BP = 0012h (driver ID for V_SYSTEM)
  1881.     BX = vector address used
  1882.     ES:DI -> new CS:IP entry point
  1883. Return: AH = status (00h) (see #2871)
  1884.     BP,DS destroyed
  1885. Note:    on installation, the given entry point will be invoked with an SF_INIT
  1886.       call (see AX=0200h"SF_INIT"), with BX set to the EX-BIOS global
  1887.       data area. If the SF_INIT call returns with error code FEh, the
  1888.       power-on self-test sequence will be called.
  1889. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=06h/BP=0012h
  1890. SeeAlso: AH=0Ch/BP=0012h,AH=0Eh/BP=0012h,AH=12h/BP=0012h,AH=16h/BP=0012h
  1891. --------b-6F10--BP005A-----------------------
  1892. INT 6F - HP Vectra EX-BIOS - "F_PUT_SPRITE" - DISPLAY GRAPHICS CURSOR SPRITE
  1893.     AH = 10h
  1894.     BP = 005Ah (driver ID for V_STRACK)
  1895.     BX = X coordinate
  1896.     CX = Y coordinate
  1897. Return: AH = status (see #2871)
  1898.     BP,DS destroyed
  1899. SeeAlso: AH=00h"HP Vectra",AH=04h"F_TRACK_INIT",AH=08h"F_TRACK_OFF"
  1900. SeeAlso: AH=12h"F_REMOVE_SPRITE",INT 33/AX=0004h
  1901. --------N-6F11-------------------------------
  1902. INT 6F - 10NET - LOCK FCB
  1903.     AH = 11h
  1904.     AL = mode
  1905.         01h sequential
  1906.         02h random
  1907.         03h random block
  1908.         CX = number of records
  1909.     DS:DX -> FCB (see #0648 at INT 21/AH=0Fh)
  1910. Return:    CF clear if successful
  1911.     CF set on error
  1912.         AX = error code (see also #2867)
  1913.         0002h file not found
  1914. SeeAlso: AH=12h,INT 21/AH=0Fh
  1915. --------N-6F12-------------------------------
  1916. INT 6F - 10NET - UNLOCK FCB
  1917.     AH = 12h
  1918.     AL = mode
  1919.         00h sequential
  1920.         01h random
  1921.         02h random block
  1922.         CX = number of records
  1923.     DS:DX -> FCB (see #0648 at INT 21/AH=0Fh)
  1924. Return:    CF clear if successful
  1925.     CF set on error
  1926.         AX = error code (see also #2867)
  1927.         0002h file not found
  1928. SeeAlso: AH=11h
  1929. --------b-6F12--BP0012-----------------------
  1930. INT 6F - HP Vectra EX-BIOS - "F_INS_FREEOWNDS" - INSTALL VALUES IN FREE VECTOR
  1931.     AH = 12h
  1932.     BP = 0012h (driver ID for V_SYSTEM)
  1933.     ES:DI -> new CS:IP entry point
  1934. Return: AH = status (00h) (see #2871)
  1935.     BP,DS destroyed
  1936. Note:    on installation, the given entry point will be invoked with an SF_INIT
  1937.       call (see AX=0200h"SF_INIT"), which should return the routine's DS
  1938.       in BX.  If the SF_INIT call returns with error code FEh, the power-on
  1939.       self-test sequence will be called.
  1940. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=0Ch/BP=0012h,AH=14h/BP=0012h
  1941. SeeAlso: AH=16h/BP=0012h,AH=18h/BP=0012h
  1942. --------b-6F12--BP005A-----------------------
  1943. INT 6F - HP Vectra EX-BIOS - "F_REMOVE_SPRITE" - REMOVE GRAPHICS CURSOR SPRITE
  1944.     AH = 12h
  1945.     BP = 005Ah (driver ID for V_STRACK)
  1946. Return: AH = status (see #2871)
  1947.     BP,DS destroyed
  1948. SeeAlso: AH=00h"HP Vectra",AH=06h"F_TRACK_ON",AH=10h"F_PUT_SPRITE"
  1949. --------N-6F13-------------------------------
  1950. INT 6F - 10NET v3.3+ - GET REMOTE CONFIGURATION TABLE ADDRESS
  1951.     AH = 13h
  1952.     DS:DX -> node ID, 12 bytes blank-padded
  1953. Return:    CF clear if successful
  1954.         ES:BX = configuration table address on given machine
  1955.     CF set on error
  1956.         AX = error code (see #2867)
  1957. SeeAlso: AH=03h
  1958. --------N-6F14-------------------------------
  1959. INT 6F - 10NET v3.3+ - GET REMOTE MEMORY
  1960.     AH = 14h
  1961.     BX:SI = address of remote memory
  1962.     CX = length (<=1024 bytes)
  1963.     DS:DX -> node ID, 12 bytes blank-padded
  1964.     DS:DI -> area to receive remote memory image
  1965. Return:    CF clear if successful
  1966.         CX = amount of memory copied to DS:SI
  1967.     CF set on error
  1968.         AX = error code (see #2867)
  1969. --------b-6F14--BP0012-----------------------
  1970. INT 6F - HP Vectra EX-BIOS - "F_INS_FREEGETDS" - INSTALL VALUES IN FREE VECTOR
  1971.     AH = 14h
  1972.     BP = 0012h (driver ID for V_SYSTEM)
  1973.     ES:DI -> new CS:IP entry point
  1974. Return: AH = status (00h) (see #2871)
  1975.     BP,DS destroyed
  1976. Note:    on installation, the given entry point will be invoked with an SF_INIT
  1977.       call (see AX=0200h"SF_INIT"), with the "last used DS" value in BX;
  1978.       the routine should adjust BX and return the new value.  If the
  1979.       SF_INIT call returns with error code FEh, the power-on self-test
  1980.       sequence will be called.
  1981. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=0Eh/BP=0012h,AH=12h/BP=0012h
  1982. SeeAlso: AH=16h/BP=0012h
  1983. --------N-6F1501-----------------------------
  1984. INT 6F - 10NET v3.3+ - GET SHARED DEVICE ENTRY
  1985.     AX = 1501h
  1986.     BX = zero-based index
  1987.     DS:SI -> node ID, 12 bytes blank-padded
  1988.     ES:DI -> 85-byte buffer for shared device table entry (see #2901)
  1989. Return:    CF clear if successful
  1990.         ES:DI buffer contains shared device table entry of BXth device
  1991.     CF set on error
  1992.         AX = error code (see #2867)
  1993. SeeAlso: AX=1502h,AX=1503h,AX=9501h
  1994.  
  1995. Format of 10NET shared device table entry:
  1996. Offset    Size    Description    (Table 2901)
  1997.  00h  8 BYTEs    device
  1998.  08h  8 BYTEs    alias
  1999.  10h 64 BYTEs    path
  2000.  50h  8 BYTEs    password
  2001.  58h    BYTE    access
  2002.  59h  4 BYTEs    mask
  2003. --------N-6F1502-----------------------------
  2004. INT 6F - 10NET v3.3+ - SET SHARED DEVICE ENTRY
  2005.     AX = 1502h
  2006.     DS:SI -> node ID, 12 bytes blank-padded
  2007.     ES:DI -> valid shared device table entry
  2008. Return:    CF clear if successful
  2009.     CF set on error
  2010.         AX = error code (see #2867)
  2011. SeeAlso: AX=1501h,AX=1503h,AX=9502h
  2012. --------N-6F1503-----------------------------
  2013. INT 6F - 10NET v3.3+ - DELETE SHARED DEVICE ENTRY
  2014.     AX = 1503h
  2015.     BX = zero-based index
  2016.     DS:SI -> node ID, 12 bytes blank-padded
  2017. Return:    CF clear if successful
  2018.     CF set on error
  2019.         AX = error code (see #2867)
  2020. SeeAlso: AX=1501h,AX=1502h,AX=9503h
  2021. --------N-6F16-------------------------------
  2022. INT 6F - 10NET v5.0 - "GL WHO" - ???
  2023.     AH = 16h
  2024.     ???
  2025. Return: ???
  2026. SeeAlso: AH=0Dh
  2027. --------b-6F16--BP0012-----------------------
  2028. INT 6F - HP Vectra EX-BIOS - "F_INS_FREEGLBDS" - INSTALL VALUES IN FREE VECTOR
  2029.     AH = 16h
  2030.     BP = 0012h (driver ID for V_SYSTEM)
  2031.     ES:DI -> new CS:IP entry point
  2032. Return: AH = status (00h) (see #2871 at INT 6F/AH=00h"HP Vectra")
  2033.     BP,DS destroyed
  2034. Note:    on installation, the given entry point will be invoked with an SF_INIT
  2035.       call (see AX=0200h"SF_INIT"), with BX set to the EX-BIOS global
  2036.       data area.  If the SF_INIT call returns with error code FEh, the
  2037.       power-on self-test sequence will be called.
  2038. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=10h/BP=0012h,AH=12h/BP=0012h
  2039. SeeAlso: AH=14h/BP=0012h,AH=18h/BP=0012h
  2040. --------N-6F17-------------------------------
  2041. INT 6F - 10NET v3.3+ - MOUNT
  2042.     AH = 17h
  2043.     AL = local drive number (0=A:)
  2044.     BL = remote drive letter or '1'..'3' for LPTn or '4' or '5' for COMx
  2045.     DS:DX -> node ID, 12 bytes blank-padded
  2046. Return:    CF clear if successful
  2047.     CF set on error
  2048.         AX = error code (see #2867)
  2049. SeeAlso: AH=18h
  2050. --------N-6F18-------------------------------
  2051. INT 6F - 10NET v3.3+ - UNMOUNT
  2052.     AH = 18h
  2053.     AL = local drive number (0=A:)
  2054.     BL = type
  2055.         00h        disk
  2056.         01h-03h LPTn
  2057.         04h,05h COMx
  2058. Return:    CF clear if successful
  2059.     CF set on error
  2060.         AX = error code (see #2867)
  2061. SeeAlso: AH=17h
  2062. --------b-6F18--BP0012-----------------------
  2063. INT 6F - HP Vectra EX-BIOS - "F_INS_FIND" - FIND DRIVER BY ATTRIBUTES
  2064.     AH = 18h
  2065.     BP = 0012h (driver ID for V_SYSTEM)
  2066.     AL = sense of test (00h equal, 02h non-equal)
  2067.     BX = AND mask
  2068.     DX = pattern
  2069.     SI = first vector address to search
  2070.     DI = offset in HP header of field to test
  2071. Return: AH = status (00h,FEh) (see #2871 at INT 6F/AH=00h"HP Vectra")
  2072.     BP,DS destroyed
  2073.     ---if AH=00h---
  2074.     SI = first matching vector address
  2075. Desc:    compare successive drivers' header fields starting at address SI
  2076.       until the header field AND BX is either equal or non-equal to DX
  2077. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=0Ch/BP=0012h,AH=10h/BP=0012h
  2078. SeeAlso: AH=12h/BP=0012h,AH=16h/BP=0012h
  2079. --------N-6F19-------------------------------
  2080. INT 6F U - 10NET v5.0 - AUDIT
  2081.     AH = 19h
  2082.     ???
  2083. Return: ???
  2084. SeeAlso: AH=99h
  2085. --------N-6F1A-------------------------------
  2086. INT 6F U - 10NET v5.0 - "BULL" - ???
  2087.     AH = 1Ah
  2088.     ???
  2089. Return: ???
  2090. --------N-6F1B-------------------------------
  2091. INT 6F U - 10NET v5.0 - "GMOUNT" - ???
  2092.     AH = 1Bh
  2093.     ???
  2094. Return: ???
  2095. --------N-6F1C-------------------------------
  2096. INT 6F U - 10NET v5.0 - "GLOGIN" - GET LOGIN LIST
  2097.     AH = 1Ch
  2098.     ???
  2099. Return: ???
  2100. --------N-6F1D-------------------------------
  2101. INT 6F U - 10NET v5.0 - "TABDATA" - ???
  2102.     AH = 1Dh
  2103.     ???
  2104. Return: ???
  2105. --------N-6F1E-------------------------------
  2106. INT 6F U - 10NET v5.0 - "SCHED" - ???
  2107.     AH = 1Eh
  2108.     ???
  2109. Return: ???
  2110. --------b-6F1E--BP0012-----------------------
  2111. INT 6F - HP Vectra EX-BIOS - "F_RAM_GET" - GET EX-BIOS FREE RAM AREA
  2112.     AH = 1Eh
  2113.     BP = 0012h (driver ID for V_SYSTEM)
  2114. Return: AH = status (00h) (see #2871 at INT 6F/AH=00h"HP Vectra")
  2115.     BX = last-used DS
  2116.     DX = maximum DS
  2117.     BP,DS destroyed
  2118. SeeAlso: AH=00h"HP Vectra",AH=04h/BP=0012h,AH=20h/BP=0012h,AH=22h/BP=0012h
  2119. --------N-6F1F-------------------------------
  2120. INT 6F U - 10NET v5.0 - "WHOAMI" - ???
  2121.     AH = 1Fh
  2122.     ???
  2123. Return: ???
  2124. --------N-6F20-------------------------------
  2125. INT 6F U - 10NET v5.0 - ???
  2126.     AH = 20h
  2127.     ???
  2128. Return: ???
  2129. --------b-6F20--BP0012-----------------------
  2130. INT 6F - HP Vectra EX-BIOS - "F_RAM_RET" - RESERVE EX-BIOS MEMORY
  2131.     AH = 20h
  2132.     BP = 0012h (driver ID for V_SYSTEM)
  2133.     BX = new value for "last-used DS"
  2134.     DX = new value for "maximum DS"
  2135. Return: AH = status (00h) (see #2871 at INT 6F/AH=00h"HP Vectra")
  2136.     BP,DS destroyed
  2137. Note:    the F_INS_FIXGETDS and F_INS_FREEGETDS functions
  2138.       (see AH=0Eh/BP=0012h,AH=14h/BP=0012h) also modify the values returned
  2139.       by this call, requiring care if both methods are used to allocate
  2140.       memory
  2141. SeeAlso: AH=00h"HP Vectra",AH=0Eh/BP=0012h,AH=14h/BP=0012h,AH=1Eh/BP=0012h
  2142. --------N-6F21-------------------------------
  2143. INT 6F U - 10NET v5.0 - ???
  2144.     AH = 21h
  2145.     ???
  2146. Return: ???
  2147. --------N-6F22-------------------------------
  2148. INT 6F U - 10NET v5.0 - ???
  2149.     AH = 22h
  2150.     ???
  2151. Return: ???
  2152. --------b-6F22--BP0012-----------------------
  2153. INT 6F - HP Vectra EX-BIOS - "F_CMOS_GET" - READ CMOS MEMORY
  2154.     AH = 22h
  2155.     BP = 0012h (driver ID of V_SYSTEM)
  2156.     BL = address of CMOS byte to read
  2157. Return: AH = status (see #2871 at AH=00h"HP Vectra")
  2158.     AL = byte read
  2159.     BP,DS destroyed
  2160. Note:    supported by ES, QS, and RS series HP Vectras
  2161. SeeAlso: AH=00h"HP Vectra",AH=1Eh/BP=0012h,AH=24h/BP=0012h
  2162. --------b-6F24--BP0012-----------------------
  2163. INT 6F - HP Vectra EX-BIOS - "F_CMOS_RET" - WRITE CMOS MEMORY
  2164.     AH = 24h
  2165.     BP = 0012h (driver ID of V_SYSTEM)
  2166.     BL = address of CMOS byte to write
  2167.     AL = new value
  2168. Return: AH = status (see #2871)
  2169.     BP,DS destroyed
  2170. Note:    updates the CMOS checksum fields (both IBM-standard and HP checksums)
  2171. SeeAlso: AH=00h"HP Vectra",AH=22h/BP=0012h
  2172. --------b-6F2A--BP0012-----------------------
  2173. INT 6F - HP Vectra EX-BIOS - "F_YIELD" - GIVE UP CPU TO OTHER TASKS
  2174.     AH = 2Ah
  2175.     BP = 0012h (driver ID of V_SYSTEM)
  2176. Return: AH = status (see #2871)
  2177.     BP,DS destroyed
  2178. Note:    this is a hook for multitasking systems
  2179. SeeAlso: AH=00h"HP Vectra",INT 15/AX=1000h,INT 2F/AX=1680h
  2180. --------b-6F30--BP0012-----------------------
  2181. INT 6F - HP Vectra EX-BIOS - "F_SND_CLICK_ENABLE" - TURN ON KEYCLICKS
  2182.     AH = 30h
  2183.     BP = 0012h (driver ID of V_SYSTEM)
  2184. Return: AH = status (see #2871 at AH=00h"HP Vectra")
  2185.     BP,DS destroyed
  2186. Desc:    enables keyclicks and flushes any pending keyclicks
  2187. SeeAlso: AH=32h/BP=0012h,AH=34h/BP=0012h,AH=36h/BP=0012h
  2188. --------b-6F32--BP0012-----------------------
  2189. INT 6F - HP Vectra EX-BIOS - "F_SND_CLICK_DISABLE" - TURN OFF KEYCLICKS
  2190.     AH = 32h
  2191.     BP = 0012h (driver ID of V_SYSTEM)
  2192. Return: AH = status (see #2871)
  2193.     BP,DS destroyed
  2194. Desc:    disables keyclicks and flushes any pending keyclicks
  2195. SeeAlso: AH=00h"HP Vectra",AH=30h/BP=0012h,AH=38h/BP=0012h
  2196. --------b-6F34--BP0012-----------------------
  2197. INT 6F - HP Vectra EX-BIOS - "F_SND_CLICK" - GENERATE KEYCLICK
  2198.     AH = 34h
  2199.     BP = 0012h (driver ID of V_SYSTEM)
  2200. Return: AH = status (see #2871)
  2201.     BP,DS destroyed
  2202. Desc:    generate a keyclick if fewer than four clicks are already pending
  2203. Note:    if keyclicks are already pending, the remaining click count is
  2204.       incremented and the function returns immediately
  2205. SeeAlso: AH=00h"HP Vectra",AH=30h/BP=0012h,AH=36h/BP=0012h,AH=3Ah/BP=0012h
  2206. --------b-6F36--BP0012-----------------------
  2207. INT 6F - HP Vectra EX-BIOS - "F_SND_BEEP_ENABLE" - ENABLE BEEPS
  2208.     AH = 36h
  2209.     BP = 0012h (driver ID of V_SYSTEM)
  2210. Return: AH = status (see #2871 at AH=00h"HP Vectra")
  2211.     BP,DS destroyed
  2212. SeeAlso: AH=00h"HP Vectra",AH=30h/BP=0012h,AH=34h/BP=0012h,AH=38h/BP=0012h
  2213. --------b-6F38--BP0012-----------------------
  2214. INT 6F - HP Vectra EX-BIOS - "F_SND_BEEP_DISABLE" - DISABLE BEEPS
  2215.     AH = 38h
  2216.     BP = 0012h (driver ID of V_SYSTEM)
  2217. Return: AH = status (see #2871)
  2218.     BP,DS destroyed
  2219. SeeAlso: AH=00h"HP Vectra",AH=32h/BP=0012h,AH=36h/BP=0012h
  2220. --------b-6F3A--BP0012-----------------------
  2221. INT 6F - HP Vectra EX-BIOS - "F_SND_BEEP" - SOUND BEEP WITH CURRENT VALUES
  2222.     AH = 3Ah
  2223.     BP = 0012h (driver ID of V_SYSTEM)
  2224. Return: AH = status (see #2871 at AH=00h"HP Vectra")
  2225.     BP,DS destroyed
  2226. Desc:    make a sound of the frequency and duration defined in the EX-BIOS
  2227.       global data area (see #2875)
  2228. SeeAlso: AH=00h"HP Vectra",AH=34h/BP=0012h,AH=36h/BP=0012h,AH=38h/BP=0012h
  2229. SeeAlso: AH=3Ch/BP=0012h,AH=3Eh/BP=0012h
  2230. --------b-6F3C--BP0012-----------------------
  2231. INT 6F - HP Vectra EX-BIOS - "F_SND_SET_BEEP" - SET BEEP FREQUENCY AND DURATION
  2232.     AH = 3Ch
  2233.     BP = 0012h (driver ID of V_SYSTEM)
  2234.     BX = frequency in Hz (1-25000, 0 = off)
  2235.     DX = duration in 10-microsecond increments
  2236. Return: AH = status (see #2871)
  2237.     BP,DS destroyed
  2238. SeeAlso: AH=00h"HP Vectra",AH=3Ah/BP=0012h,AH=3Eh/BP=0012h,#2875
  2239. --------b-6F3E--BP0012-----------------------
  2240. INT 6F - HP Vectra EX-BIOS - "F_SND_TONE" - SOUND TONE WITH FREQ AND DURATION
  2241.     AH = 3Eh
  2242.     BP = 0012h (driver ID of V_SYSTEM)
  2243.     BX = frequency in Hz (1-25000, 0 = off)
  2244.     DX = duration in 10-microsecond increments
  2245. Return: AH = status (see #2871)
  2246.     BP,DS destroyed
  2247. SeeAlso: AH=00h"HP Vectra",AH=3Ah/BP=0012h,AH=3Ch/BP=0012h,AH=40h/BP=0012h
  2248. --------b-6F40--BP0012-----------------------
  2249. INT 6F - HP Vectra EX-BIOS - "F_STR_GET_FREE_INDEX" - FIND FREE STRING INDEX
  2250.     AH = 40h
  2251.     BP = 0012h (driver ID of V_SYSTEM)
  2252. Return: AH = status (see #2871)
  2253.     BX = next free string index
  2254.     BP,DS destroyed
  2255. Desc:    get the next string index available to user programs
  2256. SeeAlso: AH=00h"HP Vectra",AH=42h/BP=0012h,AH=44h/BP=0012h,AH=46h/BP=0012h
  2257. --------b-6F42--BP0012-----------------------
  2258. INT 6F - HP Vectra EX-BIOS - "F_STR_DEL_BUCKET" - DEL HEADER FROM BUCKET LIST
  2259.     AH = 42h
  2260.     BP = 0012h (driver ID of V_SYSTEM)
  2261.     ES:DI -> bucket header (see #2902)
  2262. Return: AH = status (00h,FEh) (see #2871 at AH=00h"HP Vectra")
  2263.     BP,DS destroyed
  2264. SeeAlso: AH=00h"HP Vectra",AH=40h/BP=0012h,AH=44h/BP=0012h
  2265.  
  2266. Format of HP Vectra EX-BIOS bucket header:
  2267. Offset    Size    Description    (Table 2902)
  2268.  00h    DWORD    pointer to next bucket header (FFFFh:FFFFh if last)
  2269.  04h    WORD    upper bound on string index
  2270.  06h    WORD    lower bound on string index
  2271.  08h    DWORD    pointer to array of string offset pointers
  2272.  0Ch    WORD    segment of strings
  2273. Note:    the strings pointed at by the offset pointers are byte-counted ASCIZ
  2274.       strings
  2275. --------b-6F44--BP0012-----------------------
  2276. INT 6F - HP Vectra EX-BIOS - "F_STR_PUT_BUCKET" - ADD HEADER TO BUCKET HDR LIST
  2277.     AH = 44h
  2278.     BP = 0012h (driver ID of V_SYSTEM)
  2279.     ES:DI -> bucket header (see #2902)
  2280. Return: AH = status (00h) (see #2871)
  2281.     BP,DS destroyed
  2282. SeeAlso: AH=00h"HP Vectra",AH=42h/BP=0012h,AH=46h/BP=0012h
  2283. --------b-6F46--BP0012-----------------------
  2284. INT 6F - HP Vectra EX-BIOS - "F_STR_GET_STRING" - FIND STRING IN BUCKET LIST
  2285.     AH = 46h
  2286.     BP = 0012h (driver ID of V_SYSTEM)
  2287.     BX = string index
  2288. Return: AH = status (00h,other) (see #2871)
  2289.     BP,DS destroyed
  2290.     ---if successful---
  2291.     CX = length of string (excluding count byte and terminating NUL)
  2292.     DS:SI -> header for string
  2293.     ES:DI -> found string
  2294. SeeAlso: AH=00h"HP Vectra",AH=44h/BP=0012h,AH=48h/BP=0012h
  2295. --------b-6F48--BP0012-----------------------
  2296. INT 6F - HP Vectra EX-BIOS - "F_STR_GET_INDEX" - GET INDEX FOR STRING
  2297.     AH = 48h
  2298.     BP = 0012h (driver ID of V_SYSTEM)
  2299.     ES:DI -> ASCIZ string
  2300. Return: AH = status (00h,other) (see #2871 at AH=00h"HP Vectra")
  2301.     BP,DS destroyed
  2302.     ---if successful---
  2303.     BX = index for the given string
  2304. SeeAlso: AH=00h"HP Vectra",AH=40h/BP=0012h,AH=46h/BP=0012h
  2305. --------N-6F80-------------------------------
  2306. INT 6F - 10NET v5.0 - LOGIN
  2307.     AH = 80h
  2308.     DS:DX -> login record (see #2903)
  2309. Return: CF clear if successful
  2310.         BL = number of days until password expires (00h = never)
  2311.         CL = security level
  2312.     CF set on error
  2313.         AX = status (see #2867)
  2314. SeeAlso: AH=00h,AH=81h
  2315.  
  2316. Format of 10NET login record:
  2317. Offset    Size    Description    (Table 2903)
  2318.  00h  8 BYTEs    user name
  2319.  08h  8 BYTEs    password
  2320.  10h 15 BYTEs    server node ID
  2321.  1Fh  8 BYTEs    new password
  2322.  27h    BYTE    invoke mode (00h command line, 01h interactive)
  2323. --------N-6F81-------------------------------
  2324. INT 6F - 10NET v5.0 - LOGOUT
  2325.     AH = 81h
  2326.     DS:DX -> server node ID (DX=0000h for universal logout)
  2327. Return: AX = status (see #2867)
  2328. SeeAlso: AH=01h,AH=80h
  2329. --------N-6F8A-------------------------------
  2330. INT 6F - 10NET v5.0 - CHAT
  2331.     AH = 8Ah
  2332.     DS:BX -> chat parameters (see #2904)
  2333.     DS:DX -> chat message (see #2905)
  2334. Return: CF clear if successful
  2335.     CF set on error
  2336.         AX = status (see #2867)
  2337. SeeAlso: AH=0Ah
  2338.  
  2339. Format of 10NET chat parameters:
  2340. Offset    Size    Description    (Table 2904)
  2341.  00h  8 BYTEs    sender's user name
  2342.  08h  8 BYTEs    destination user name
  2343.  10h 15 BYTEs    destination node (0 if broadcast-style chat)
  2344.  
  2345. Format of 10NET chat message:
  2346. Offset    Size    Description    (Table 2905)
  2347.  00h    WORD    message length
  2348.  02h  N BYTEs    chat message contents
  2349. --------N-6F8D-------------------------------
  2350. INT 6F - 10NET v5.0 - "WHO" - ENUMERATE USERS ON NETWORK
  2351.     AH = 8Dh
  2352.     BX = service mask (see #2906)
  2353.     CX = length of buffer
  2354.     DS:DX -> buffer for array of Who data structures (see #2907)
  2355. Return: CF clear if successful
  2356.         CX = number of nodes matching service mask
  2357.         DS:DX buffer filled
  2358.     CF set on error
  2359.         AX = status (see #2867)
  2360. SeeAlso: AH=0Dh
  2361.  
  2362. Bitfields for 10NET service mask:
  2363. Bit(s)    Description    (Table 2906)
  2364.  0    workstation
  2365.  1    file server
  2366.  2    print server
  2367.  3    de-spool server
  2368.  
  2369. Format of 10NET Who data structure:
  2370. Offset    Size    Description    (Table 2907)
  2371.  00h  8 BYTEs    user name
  2372.  08h 15 BYTEs    node ID
  2373.  17h  3 BYTEs    unique portion of Ethernet address
  2374.  1Ah    BYTE    Who group number
  2375.  1Bh    WORD    service mask (see #2906)
  2376.  1Dh    DWORD    serial number
  2377.  21h    BYTE    maximum concurrent users with same serial number allowed on net
  2378.  22h    BYTE    chat mask (see #2908)
  2379.  23h    BYTE    internal system bits (see #2909)
  2380.  24h  9 BYTEs    version number in format MM.mm.xxx
  2381.  2Dh    BYTE    number of shared directories
  2382.  2Eh    BYTE    number of shared printer queues
  2383.  
  2384. Bitfields for 10NET chat mask:
  2385. Bit(s)    Description    (Table 2908)
  2386.  0    chat permitted
  2387.  1    bell enabled
  2388.  2    chat keyboard initiated
  2389.  3    in INT 16 handler
  2390.  4    in Get Input
  2391.  5    display has timed out
  2392.  6    chat is idle
  2393.  
  2394. Bitfields for 10NET internal system bits:
  2395. Bit(s)    Description    (Table 2909)
  2396.  0    submit permitted
  2397.  1    submit initiated
  2398.  2    submit executing
  2399.  3    internal client call/chat/spool/autospool
  2400.  4    in spool termination
  2401.  5    print permitted
  2402.  6    waiting for keyboard input
  2403. --------N-6F9501-----------------------------
  2404. INT 6F - 10NET v5.0 - GET SHARED DEVICE ENTRY
  2405.     AX = 9501h
  2406.     BX = zero-based index
  2407.     DS:SI -> server's node ID
  2408.     ES:DI -> buffer for shared device structure (see #2910)
  2409. Return: CF clear if successful
  2410.     CF set on error
  2411.         AX = status (see #2867)
  2412. SeeAlso: AX=1501h,AX=9502h,AX=9503h,AX=9504h
  2413.  
  2414. Format of 10NET shared device structure:
  2415. Offset    Size    Description    (Table 2910)
  2416.  00h  8 BYTEs    alias
  2417.  08h    BYTE    type (02h modem, 03h print queue, 04h directory)
  2418.  09h    BYTE    access rights
  2419.         bit 0: read
  2420.         bit 1: write
  2421.         bit 2: create
  2422.  0Ah  8 BYTEs    password
  2423.  12h 32 BYTEs    comment
  2424. ---directory---
  2425.  32h 64 BYTEs    pathname of shared directory
  2426. ---print queue---
  2427.  32h    BYTE    notification bit mask (see #2911)
  2428.  33h    BYTE    job control bit mask (see #2912)
  2429.  34h    WORD    number of days to retain file
  2430.  36h    WORD    test print length
  2431.  38h    BYTE    number of copies to print
  2432.  39h    BYTE    compression algorithm
  2433.  3Ah    BYTE    tab width (00h = don't expand)
  2434.  3Bh    BYTE    priority
  2435.  3Ch    WORD    time to open queue (FFFFh = always)
  2436.  3Eh    WORD    time to close queue
  2437.  40h    WORD    pause following queue switch, in clock ticks
  2438.  42h    WORD    pause between print jobs, in clock ticks
  2439.  44h    BYTE    associate queue file existence mask
  2440.         bit 0: queue switch file exists
  2441.         bit 1: initiate file exists
  2442.         bit 2: abort file exists
  2443.  45h  6 BYTEs    character sequence for page eject
  2444.  4Bh    BYTE    status of print queue
  2445.         bit 0: queue is closed
  2446.  4Ch    WORD    number of jobs on queue
  2447.  4Eh    WORD    offset of next print job to be dispatched (FFFFh = none)
  2448.  50h    BYTE    number of print devices in printer pool
  2449.  51h    WORD    offset of first print device structure (FFFFh if empty)
  2450.  
  2451. Bitfields for notification flags:
  2452. Bit(s)    Description    (Table 2911)
  2453.  0    user at print start
  2454.  1    operator at start, with reply
  2455.  2    user at print completion
  2456.  3    operator at completion, with reply
  2457.  4    user on queue switch
  2458.  5    operator on queue switch, with reply
  2459.  6    user on print error
  2460.  
  2461. Bitfields for 10NET job control mask:
  2462. Bit(s)    Description    (Table 2912)
  2463.  0    print banner page
  2464.  1    eject page at end of job
  2465.  2    mark as "held" (queue but don't print)
  2466.  3    rush job (queue at top)
  2467.  4    overwrite file with zeros before deletion
  2468.  5    hyperspool if possible
  2469. --------N-6F9502-----------------------------
  2470. INT 6F - 10NET v5.0 - SET SHARED DEVICE ENTRY
  2471.     AX = 9502h
  2472.     DS:SI -> server's node ID
  2473.     ES:DI -> shared device structure (see #2910)
  2474. Return: CF clear if successful
  2475.     CF set on error
  2476.         AX = status (see #2867)
  2477. SeeAlso: AX=1502h,AX=9501h,AX=9503h,AX=9504h
  2478. --------N-6F9503-----------------------------
  2479. INT 6F - 10NET v5.0 - DELETE SHARED DEVICE
  2480.     AX = 9503h
  2481.     BX = zero-based index
  2482.     DS:SI -> server's node ID
  2483. Return: CF clear if successful
  2484.     CF set on error
  2485.         AX = status (see #2867)
  2486. SeeAlso: AX=1503h,AX=9501h,AX=9502h,AX=9504h
  2487. --------N-6F9504-----------------------------
  2488. INT 6F - 10NET v5.0 - ENUMERATE USERS OF SHARED DEVICE
  2489.     AX = 9504h
  2490.     BX = zero-based shared device index
  2491.     CX = zero-based user index
  2492.     DS:SI -> server's node ID
  2493. Return: CF clear if successful
  2494.         ES:DI -> node ID of the CX'th user of the BX'th device
  2495.     CF set on error
  2496.         AX = status (see #2867)
  2497. SeeAlso: AX=9501h,AX=9502h,AX=9503h
  2498. --------N-6F99-------------------------------
  2499. INT 6F - 10NET v5.0 - AUDIT
  2500.     AH = 99h
  2501.     DS:SI -> server's node ID
  2502.     ES:DI -> data to be appended to audit trail file (max 106 bytes)
  2503. Return: CF clear if successful
  2504.     CF set on error
  2505.         AX = status (see #2867)
  2506. SeeAlso: AH=19h,AH=9Ch
  2507. --------N-6F9C-------------------------------
  2508. INT 6F - 10NET v5.0 - GET LOGIN LIST
  2509.     AH = 9Ch
  2510.     BX = zero-based index
  2511. Return: CF clear if successful
  2512.         DS:DI -> BX'th node ID that caller's machine is logged into
  2513.     CF set on error
  2514.         AX = status (see #2867)
  2515. --------H-70---------------------------------
  2516. INT 70 C - IRQ8 - CMOS REAL-TIME CLOCK
  2517. Desc:    this interrupt is called when the real-time clock chip generates an
  2518.       alarm or periodic interrupt, among others.  The periodic interrupt
  2519.       occurs 1024 times per second.
  2520. Nots:    many BIOSes turn off the periodic interrupt in the INT 70h handler
  2521.       unless in an event wait (see INT 15/AH=83h or INT 15/AH=86h).
  2522.     may be masked by setting bit 0 on I/O port A1h
  2523. SeeAlso: INT 08,INT 0F"HP 95LX",INT 15/AH=01h"Amstrad",INT 15/AH=83h
  2524. SeeAlso: INT 15/AH=86h,INT 1A/AH=02h,INT 58"DESQview",MEM FEE00320h
  2525. --------v-70---------------------------------
  2526. INT 70 - VIRUS - "Stupid" - ORIGINAL INT 21h VECTOR
  2527. Note:    the virus sets this interrupt to be the same as INT 21, and then
  2528.       performs only INT 70 calls; since INT 70 is also generated by the
  2529.       real-time clock on the PC/AT and higher, this could cause random
  2530.       actions on an infected system
  2531. SeeAlso: INT 6B"VIRUS",INT 9E"VIRUS",INT E0"VIRUS"
  2532. --------H-71---------------------------------
  2533. INT 71 C - IRQ9 - REDIRECTED TO INT 0A BY BIOS
  2534. Notes:    may be masked by setting bit 1 on I/O port A1h
  2535.     the default BIOS handler invokes INT 0A for compatibility, since the
  2536.       pin for IRQ2 on the PC expansion bus became the pin for IRQ9 on the
  2537.       AT expansion bus.
  2538.     under DESQview, only the INT 15h vector and BASIC segment address (the
  2539.       word at 0000h:0510h) may be assumed to be valid for the handler's
  2540.       process
  2541. SeeAlso: INT 0A,INT 59
  2542. --------H-72---------------------------------
  2543. INT 72 C - IRQ10 - RESERVED
  2544. Note:    may be masked by setting bit 2 on I/O port A1h
  2545. SeeAlso: INT 5A
  2546. --------H-73---------------------------------
  2547. INT 73 C - IRQ11 - RESERVED
  2548. Note:    may be masked by setting bit 3 on I/O port A1h
  2549. SeeAlso: INT 5B
  2550. --------H-74---------------------------------
  2551. INT 74 C - IRQ12 - POINTING DEVICE (PS)
  2552. Notes:    may be masked by setting bit 4 on I/O port A1h
  2553.     under DESQview, only the INT 15h vector and BASIC segment address (the
  2554.       word at 0000h:0510h) may be assumed to be valid for the handler's
  2555.       process
  2556. SeeAlso: INT 33,INT 5C
  2557. --------H-75---------------------------------
  2558. INT 75 C - IRQ13 - MATH COPROCESSOR EXCEPTION (AT and up)
  2559. Desc:    redirected to INT 02 by the BIOS, for compatibility with the PC
  2560. Notes:    may be masked by setting bit 5 on I/O port A1h
  2561.     not all clones wire the coprocessor to generate this IRQ; some systems
  2562.       generate an NMI (see INT 02) or assert the -ERROR pin on the CPU
  2563.       (see INT 10"COPROCESSOR")
  2564.     under DESQview, only the INT 15h vector and BASIC segment address (the
  2565.       word at 0000h:0510h) may be assumed to be valid for the handler's
  2566.       process
  2567. SeeAlso: INT 10"COPROCESSOR",INT 5D
  2568. --------H-76---------------------------------
  2569. INT 76 C - IRQ14 - HARD DISK CONTROLLER OPERATION COMPLETE (AT and later)
  2570. Notes:    may be masked by setting bit 6 on I/O port A1h
  2571.     on the PS/2, this interrupt is designed to be shared with other
  2572.       devices that produce an operation-complete interrupt, though
  2573.       the only current user is the hard disk
  2574. SeeAlso: INT 0E"IRQ6",INT 15/AH=91h,INT 5E
  2575. --------H-77---------------------------------
  2576. INT 77 C - IRQ15 - RESERVED (AT,PS)
  2577. Note:    may be masked by setting bit 7 on I/O port A1h
  2578. SeeAlso: INT 5F
  2579. --------H-77---------------------------------
  2580. INT 77 C - IRQ15 - POWER CONSERVATION (Compaq SLT/286)
  2581. Note:    may be masked by setting bit 7 on I/O port A1h
  2582. SeeAlso: INT 15/AX=4600h,INT 5F
  2583. --------E-78---------------------------------
  2584. INT 78 - UofSalford DBOS DOS extender - API
  2585.     AH = function
  2586.         00h (PB) display 32-bit memory specified by command argument
  2587.         01h (PT) display 32-bit instruction(s) specified by command arg
  2588.         02h specify offset to subsequent PB and PT commands
  2589.         03h switch to protected mode
  2590.         DWORD following INT instruction point to map; protected-mode
  2591.               entry point is immediately following the DWORD
  2592.         Return: never
  2593.         Note:    if bit 31 of the map address is set, only a stub was
  2594.               loaded by DOS and DBOS will load the entire program
  2595.         04h specify that subsequent load (AH=03h) should leave program in
  2596.           memory
  2597.         05h release program from memory
  2598.         06h set break point at address and option count from commandline
  2599.         07h resume program execution
  2600.         08h single-step program
  2601.         09h set read/write breakpoint using 386 debug registers
  2602.         0Ah set write breakpoint using 386 debug register
  2603.         0Bh set memory byte to new value
  2604.         0Ch display CPU registers
  2605.         0Dh run until specified program address reached
  2606.         0Fh print trace from program map
  2607.         10h specify an offset using a map symbol
  2608.         14h print memory without any offset
  2609.         18h switch DBOS into/out of test mode (ON/OFF commandline args)
  2610.         1Dh get address of real/protected-mode communication buffer
  2611.         Return: ES:BP -> comm buffer
  2612.         1Eh set real-mode memory size (specify how much real-mode memory
  2613.           to leave free when running FTN77 programs)
  2614.         22h uninstall DBOS
  2615.         24h force DBOS to emulate coprocessor instructions
  2616.         26h set named DBOS switches from commandline
  2617.         27h reset named DBOS switched from commandline
  2618.         2Ah set list of dynamic link libraries to contents of commandline
  2619.           file
  2620.         35h specify that subsequent load (AH=03h) should stop at first
  2621.           instruction
  2622. Return: ???
  2623. Notes:    DBOS supports functions 00h through 50h; many of these functions
  2624.       provide a low-level debugging interface
  2625.     command arguments are read from the calling program's PSP
  2626. SeeAlso: INT 79"DBOS"
  2627. Index:    uninstall;DBOS DOS extender
  2628. --------E-78---------------------------------
  2629. INT 78 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ0
  2630. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  2631.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  2632. Notes:    this vector is overwritten when GO32 starts but is not restored by
  2633.       early versions of the extender
  2634.     the newest versions of GO32 dynamically allocate the vectors used
  2635.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  2636. SeeAlso: INT 08,INT 10/AH=FFh"GO32",INT 79"GO32"
  2637. --------A-78---------------------------------
  2638. INT 78 R - AutoCAD Device Interface - PLOTTER - SEND COMMAND
  2639.     AX = function
  2640.         0001h begin plot
  2641.         BX = file level
  2642.             0000h ASCII file
  2643.             0001h binary file
  2644.             0002h AutoCAD DXB file
  2645.             0003h installed ADI driver
  2646.         0002h end plot (close plotter)
  2647.         0003h move (pen up)
  2648.         BX = new X position
  2649.         CX = new Y position
  2650.         0004h move (pen down)
  2651.         BX = new X position
  2652.         CX = new Y position
  2653.         0005h select pen
  2654.         BX = pen number
  2655.         0006h select drawing speed
  2656.         BX = drawing speed N
  2657.         0007h select line style
  2658.         BX = line style N
  2659.         0008h raise pen
  2660.         0009h abort plot
  2661. Return: AX = 0000h (may be used for driver status in future releases)
  2662. SeeAlso: INT 79"AutoCAD",INT 7A/AX=0001h"AutoCAD",INT 7B/AX=8001h"AutoCAD"
  2663. --------d-78---------------------------------
  2664. INT 78 - ADP-60 IDE controller - ORIGINAL INT 13
  2665. SeeAlso: INT 79"ADP-60"
  2666. --------s-78-------------------------------
  2667. INT 78 - ULTRAMID - API
  2668.     AX = function
  2669.     --- digital functions ---
  2670.         0000h start digital
  2671.         ES:DI -> Sound Structure
  2672.         Return: AX = voice used
  2673.         0001h play next buffer
  2674.         ES:DI -> Sound Structure
  2675.         0002h set panning
  2676.         BX = pan
  2677.         CX = voice
  2678.         0003h set volume
  2679.         BX = volume
  2680.         CX = voice
  2681.         0004h set rate (not yet implemented)
  2682.         0005h pause digital
  2683.         CX = voice
  2684.         0006h restart digital
  2685.         CX = voice
  2686.         0007h stop digital
  2687.         CX = voice
  2688.         0008h get digital position
  2689.         CX = voice
  2690.         Return: AX:DX -> position in PC buffer
  2691.         0009h get voice status (not yet implemented)
  2692.     --- MIDI functions ---
  2693.         000Ah load MIDI patches
  2694.         ES:DI -> MIDI track just after the Mtrk header
  2695.         BX:DX = length of MIDI track
  2696.         000Bh load XMIDI patches
  2697.         ES:DI -> event buffer including the EVNT header
  2698.         000Ch load patch
  2699.         CX = MIDI number of patch
  2700.         000Dh unload patch
  2701.         CX = MIDI number of patch
  2702.         000Eh start sequence
  2703.         000Fh unload all patches
  2704.         0010h MIDI out byte
  2705.         CX = MIDI byte
  2706.         0011h MIDI out string
  2707.         CX = length
  2708.         ES:DI -> string of MIDI data
  2709.         0012h all notes off
  2710.     --- resource functions ---
  2711.         0013h allocate memory
  2712.         BX:DX = size of GUS memory needed
  2713.         Return: AX:DX = address of memory, or 0000:0000 if not avaiable
  2714.         0014h free memory
  2715.         BX:DX = address of memory to be freed
  2716.         0015h uninstall
  2717.         0016h sem enter
  2718.         0017h sem leave
  2719.         0018h add external semaphore
  2720.         BX:DX -> external semaphore
  2721.         0019h clear external semaphore
  2722.         BX:DX -> external semaphore
  2723.         001Ah application start
  2724.         001Bh application end
  2725. Program: UltraMid is a TSR from Advanced Gravis to play MIDI and digital data
  2726.        through the Gravis UltraSound (GUS)
  2727. Range:    INT 78 to INT 7F
  2728. Notes:    the installation check is testing for the signature "ULTRAMID" at
  2729.       offset 0103h in the interrupt handler's segment
  2730. SeeAlso: INT 2F/AX=CD00h"ULTRAMID",INT 7E"SBOS"
  2731. Index:    uninstall;UltraMID
  2732. --------d-7800-------------------------------
  2733. INT 78 - TARGA.DEV - CMC International SCSI device driver - SET I/O PORT
  2734.     AH = 00h
  2735.     DX = interface board I/O port
  2736. Return: CF set on error
  2737.         AL = error code (see #2913)
  2738. Note:    if this routine is not called, the port is the driver's default
  2739.       (usually 0280h or 0300h)
  2740.     an installation check is performed by TARGA.DEV upon initialization
  2741.       by checking for the string "SCSI" at offset 03h into the interrupt
  2742.       handler
  2743. SeeAlso: AH=01h,AH=02h
  2744. Index:    installation check;TARGA.DEV
  2745.  
  2746. (Table 2913)
  2747. Values for TARGA.DEV error code:
  2748.  00h    illegal command given to SCSI code
  2749.  01h    invalid I/O port specified (must be from 100H to 3F8H, and must be on
  2750.       an 8-port boundary)
  2751.  02h    invalid DMA channel specified (must be from 1 to 3)
  2752.  03h    invalid SCSI board number specified (must be from 0 to 7)
  2753.  04h    error from data register test during self-test
  2754.  05h    SCSI input signals not all 0 when SCSI RST activated
  2755.  06h    SCSI input signals not all 0 before selecting a SCSI device
  2756.  07h    BSY signal is active; SCSI bus is busy
  2757.  08h    SCSI board not selected, BSY signal did not come on in response to
  2758.       raising SEL
  2759.  09h    time-out waiting for status state, signifying end of DMA transfer
  2760. --------E-780000-----------------------------
  2761. INT 78 - HugeRealMode Driver - INSTALLATION CHECK
  2762.     AX = 0000h
  2763. Return: AX = DBCAh if installed
  2764. Program: the HugeRealMode driver was published in the German DOS Extra Nr. 20
  2765.       (1992), and makes a 4G flat address space (for both data and code)
  2766.       available to real-mode DOS programs
  2767. SeeAlso: AX=0001h
  2768. --------E-780001-----------------------------
  2769. INT 78 - HugeRealMode Driver - GET ENTRY POINT
  2770.     AX = 0001h
  2771. Return: ES:BX -> far call entry point (see #2915,#2930)
  2772. SeeAlso: AX=0000h
  2773.  
  2774. (Table 2914)
  2775. Values for HugeRealMode Server error code:
  2776.  00h    successful
  2777.  01h    unknown function
  2778.  02h    A20 disabled
  2779.  03h    A20 enabled
  2780.  04h    memory allocation error
  2781.  05h    memory not fixeable (LOCK)
  2782.  06h    memory not deallocaable
  2783.  07h    memory not moveable (UNLOCK)
  2784.  08h    change in memory allocation size not possible
  2785.  09h    file error (with .XMF-file)
  2786.  0Ah    memory error (with .XMF-file)
  2787.  0Bh    unknown procedure (currently Turbo Pascal unit only)
  2788.  
  2789. (Table 2915)
  2790. Call HugeRealMode Server "Enable A20" function with:
  2791.     AL = 00h
  2792. Return: AX = error code (see #2914)
  2793. Note:    The HugeRealMode Server requires an XMS-driver like HIMEM.SYS loaded
  2794.       before HUGEREAL (for XMS-memory allocation and A20 control). It
  2795.       utilizes some undocumented 386+ features to enable 4G code and data
  2796.       segments (flat memory model) in the CPUs real-mode. It is not
  2797.       compatible with V86-mode (as with most EMM386). For maximum speed
  2798.       and compatibility with DOS it uses a two stage interrupt model
  2799.       (see INT 78/AL=03h)
  2800. SeeAlso: #2916,#2917,#2918
  2801.  
  2802. (Table 2916)
  2803. Call HugeRealMode Server "Disable A20" function with:
  2804.     AL = 01h
  2805. Return: AX = error code (see #2914)
  2806. SeeAlso: #2915,#2917
  2807.  
  2808. (Table 2917)
  2809. Call HugeRealMode Server "Query A20 State" function with:
  2810.     AL = 02h
  2811. Return: AX = A20 state (0000h disabled, 0001h enabled)
  2812. SeeAlso: #2915,#2916
  2813.  
  2814. (Table 2918)
  2815. Call HugeRealMode Server "Enable Two-Stage Interrupt Model" function with:
  2816.     AL = 03h
  2817. Return: AX = error code (see #2914)
  2818. Notes:    If the two stage interrupt model is disabled, the IP must stay below
  2819.       1MB, because the high word of EIP is not saved correctly by the
  2820.       standard interrupt management in real mode.  Routines in extended
  2821.       memory may only be called with interrupts disabled (only usable for
  2822.       very short routines).
  2823.     If the two stage interupt model is enabled, these conventions are not
  2824.       required.  The outer (transparent) ISRs save the higher word of EIP
  2825.       in the high word of CR3 (possible modification: in memory, if this
  2826.       is not safe) and then invoke the standard ISRs.
  2827.     Because of this handling, one should use pseudo segmented code even in
  2828.       extended memory (64K blocks located on 64K boundaries) to avoid the
  2829.       misalignment of the saved EIP (in CR3). Another way is to track and
  2830.       realign CR3 each time when jumping over a 64K boundary in extended
  2831.       memory
  2832. SeeAlso: #2915,#2919
  2833.  
  2834. (Table 2919)
  2835. Call HugeRealMode Server "Disable Two-Stage Interrupt Model" function with:
  2836.     AL = 04h
  2837. Return: AX = error code (see #2914)
  2838. SeeAlso: #2915,#2918
  2839.  
  2840. (Table 2920)
  2841. Call HugeRealMode Server "Get Segment Address Of Server-Management Range" with:
  2842.     AL = 05h
  2843. Return:    AX = error code (see #2914)
  2844.     ES = segment address
  2845. SeeAlso: #2930
  2846.  
  2847. (Table 2921)
  2848. Call HugeRealMode Server "Allocate Memory" function with:
  2849.     AL = 06h
  2850.     DX = length in KB
  2851. Return:    AX = error code (see #2914)
  2852.     DX = handle
  2853.     EBX = start address of allocated block
  2854. SeeAlso: #2922,#2923
  2855.  
  2856. (Table 2922)
  2857. Call HugeRealMode Server "Deallocate Memory" function with:
  2858.     AL = 07h
  2859.     DX = handle
  2860. Return: AX = error code (see #2914)
  2861. SeeAlso: #2921,#2923
  2862.  
  2863. (Table 2923)
  2864. Call HugeRealMode Server "Modify Allocated Memory Size" function with:
  2865.     AL = 08h
  2866.     DX = handle
  2867.     BX = new size in KB
  2868. Return:    AX = error code (see #2914)
  2869.     EBX = new address
  2870. SeeAlso: #2921,#2922
  2871.  
  2872. (Table 2924)
  2873. Call HugeRealMode Server "Load .XMF-file" function with:
  2874.     AL = 09h
  2875.     ES:BX -> filename (see #2925)
  2876. Return:    AX = error code (see #2914)
  2877.     ECX = target address
  2878. Notes:    memory must be allocated before loading
  2879.     .XMF file format (eXtended Memory executable File format) is supported
  2880.       by the HugeRealMode server for easier handling of XMS-code.
  2881.     The utility CONFXMF converts .OBJ-files (.COM 'tiny' model) to
  2882.       .XMF-format
  2883. SeeAlso: #2921
  2884.  
  2885. Format of .XMF program file header:
  2886. Offset    Size    Description    (Table 2925)
  2887.  00h    DWORD    signature "XMF_"
  2888.  04h    WORD    length of programs code
  2889.  06h    WORD    count of 32bit addresses to relocate
  2890.  08h    WORD    offset to code start (releative to file start) (see #2926)
  2891.  0Ah    WORD    relocation table
  2892. Note:    each word contains a 16bit address, where a relocation has to be
  2893.       performed
  2894. SeeAlso: #2924,#2926
  2895.  
  2896. Format of .XMF-file code header:
  2897. Offset    Size    Description    (Table 2926)
  2898.  00h    WORD    count of exported functions
  2899.  02h  N PWORDs    48bit pointers (16bit segment+32bit offset) to each function
  2900.         (16bit segment is always zero)
  2901.  var        start of program's code
  2902. SeeAlso: #2924,#2925
  2903.  
  2904. (Table 2927)
  2905. Call HugeRealMode Server "Set Segment Limits" function with:
  2906.     AL = 0Ah
  2907.     BL = segment limits (see #2928)
  2908. Return: AX = error code (see #2914)
  2909. SeeAlso: #2920
  2910.  
  2911. Bitfields for HugeRealMode Server segment limits:
  2912. Bit(s)    Description    (Table 2928)
  2913.  7    CS size: 1=4GB, 0=64KB
  2914.  6-5    not used
  2915.  4    SS size: 1=4GB, 0=64KB
  2916.  3    GS size
  2917.  2    FS size
  2918.  1    ES size
  2919.  0    DS size
  2920. SeeAlso: #2927
  2921.  
  2922. (Table 2929)
  2923. Call HugeRealMode Server "Transfer Memory From DOS To XMS" function with:
  2924.     AL = 0Bh
  2925.     ES:SI = source address
  2926.     EDI = target address
  2927.     ECX = length
  2928. Return: AX = error code
  2929. SeeAlso: #2930
  2930.  
  2931. (Table 2930)
  2932. Call HugeRealMode Server "Transfer Memory From XMS To DOS" function with:
  2933.     AL = 0Ch
  2934.     ESI = source address
  2935.     ES:DI = target address
  2936.     ECX = length
  2937. Return: AX = error code
  2938. SeeAlso: #2929
  2939. --------d-7801-------------------------------
  2940. INT 78 - TARGA.DEV - GET I/O PORT
  2941.     AH = 01h
  2942. Return: DX = current interface board I/O port
  2943. SeeAlso: AH=00h,AH=03h"TARGA"
  2944. --------d-7802-------------------------------
  2945. INT 78 - TARGA.DEV - SET DMA CHANNEL
  2946.     AH = 02h
  2947.     AL = interface board DMA channel
  2948. Return: CF set on error
  2949.     AL = error code (see #2913)
  2950. Note:    if this routine is not called, the DMA channel is the driver's default
  2951.       (usually 3)
  2952. SeeAlso: AH=00h,AH=03h"TARGA"
  2953. --------d-7803-------------------------------
  2954. INT 78 - TARGA.DEV - GET DMA CHANNEL
  2955.     AH = 03h
  2956. Return: AL = current interface board DMA channel
  2957. SeeAlso: AH=01h,AH=02h
  2958. --------d-7804-------------------------------
  2959. INT 78 - TARGA.DEV - SET SCSI DEVICE NUMBER
  2960.     AH = 04h
  2961.     AL = SCSI device number
  2962. Return: CF set on error
  2963.     AL = error code (see #2913)
  2964. Note:    if this routine is not called, the device number used is the driver's
  2965.       default (usually 0)
  2966. SeeAlso: AH=02h,AH=05h
  2967. --------d-7805-------------------------------
  2968. INT 78 - TARGA.DEV - GET SCSI DEVICE NUMBER
  2969.     AH = 05h
  2970. Return: AL = current SCSI device number
  2971. SeeAlso: AH=03h"TARGA",AH=04h
  2972. --------d-7806-------------------------------
  2973. INT 78 - TARGA.DEV - SET/CLEAR EARLY RETURN MODE
  2974.     AH = 06h
  2975.     AL = new state
  2976.         00h clear early return mode
  2977.         01h set early return mode
  2978. Note:    if early return mode is set then SCSI will return with no errors
  2979.       when the last DMA transfer is started in a call with AH=13h or AH=14h
  2980.     if this routine is not called, early return mode is cleared
  2981. SeeAlso: AH=13h,AH=14h,AH=15h
  2982. --------d-7808-------------------------------
  2983. INT 78 - TARGA.DEV - INTERFACE BOARD SELF-TEST
  2984.     AH = 08h
  2985. Return: CF set on error
  2986.     AL = error code (see #2913)
  2987. Note:    the SCSI bus is also reset
  2988. SeeAlso: AH=09h
  2989. --------d-7809-------------------------------
  2990. INT 78 - TARGA.DEV - RESET SCSI BUS
  2991.     AH = 09h
  2992. Return: AL = error code if carry set (see #2913)
  2993. SeeAlso: AH=08h
  2994. --------d-7810-------------------------------
  2995. INT 78 - TARGA.DEV - SEND SCSI COMMAND
  2996.     AH = 10h
  2997.     DS:SI -> command bytes (see #2931)
  2998. Return: AH = SCSI status byte
  2999.     CF clear if successful
  3000.         AL = SCSI message byte
  3001.     CF set on error
  3002.         AL = error code (see #2913)
  3003. SeeAlso: AH=11h,INT 21/AX=4403h"ST-01"
  3004.  
  3005. Format of SCSI Command:
  3006. Offset    Size    Description    (Table 2931)
  3007.  00h    BYTE    length of command
  3008.  01h    ???    command bytes
  3009. --------d-7811-------------------------------
  3010. INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (PROGRAMMED I/O)
  3011.     AH = 11h
  3012.     DS:SI -> command bytes (see #2932)
  3013.     ES:BX -> data storage area
  3014.     CX = number of data bytes to transfer
  3015. Return: AH = SCSI status byte
  3016.     CF clear if successful
  3017.         AL = SCSI message byte
  3018.     CF set on error
  3019.         AL = error code (see #2913)
  3020. Note:    this command receives data internally one byte at a time
  3021. SeeAlso: AH=10h,AH=13h
  3022.  
  3023. Format of TARGA.DEV SCSI Command:
  3024. Offset    Size    Description    (Table 2932)
  3025.  00h    BYTE    length of command
  3026.  01h    ???    command bytes
  3027. --------d-7812-------------------------------
  3028. INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (PROGRAMMED I/O)
  3029.     AH = 12h
  3030.     DS:SI -> command bytes (see #2933)
  3031.     ES:BX -> data storage area
  3032.     CX = number of data bytes to transfer
  3033. Return: AH = SCSI status byte
  3034.     CF clear if successful
  3035.         AL = SCSI message byte
  3036.     CF set on error
  3037.         AL = error code (see #2913)
  3038. Note:    this command sends data internally one byte at a time
  3039. SeeAlso: AH=14h
  3040.  
  3041. Format of TARGA.DEV SCSI Command:
  3042. Offset    Size    Description    (Table 2933)
  3043.  00h    BYTE    length of command
  3044.  01h    ???    command bytes
  3045. --------d-7813-------------------------------
  3046. INT 78 - TARGA.DEV - SEND SCSI COMMAND, RECEIVE DATA (DMA)
  3047.     AH = 13h
  3048.     DS:SI -> command bytes (see #2934)
  3049.     ES:BX -> data storage area
  3050.     DX:CX = number of data bytes to transfer
  3051. Return: AH = SCSI status byte (if early return mode is clear)
  3052.     CF clear if successful
  3053.         AL = SCSI message byte (if early return mode is clear)
  3054.     CF set on error
  3055.         AL = error code (see #2913)
  3056. Note:    this command receives data using DMA
  3057. SeeAlso: AH=11h,AH=12h
  3058.  
  3059. Format of TARGA.DEV SCSI Command:
  3060. Offset    Size    Description    (Table 2934)
  3061.  00h    BYTE    length of command
  3062.  01h    ???    command bytes
  3063. --------d-7814-------------------------------
  3064. INT 78 - TARGA.DEV - SEND SCSI COMMAND AND DATA (DMA)
  3065.     AH = 14h
  3066.     DS:SI -> command bytes (see #2935)
  3067.     ES:BX -> data storage area
  3068.     DX:CX = number of data bytes to transfer
  3069. Return: AH = SCSI status byte (if early return mode is clear)
  3070.     CF clear if successful
  3071.         AL = SCSI message byte (if early return mode is clear)
  3072.     CF set on error
  3073.         AL = error code (see #2913)
  3074. Note:    this command sends data using DMA
  3075. SeeAlso: AH=12h,AH=13h
  3076.  
  3077. Format of TARGA.DEV SCSI Command:
  3078. Offset    Size    Description    (Table 2935)
  3079.  00h    BYTE    length of command
  3080.  01h    ???    command bytes
  3081. --------d-7815-------------------------------
  3082. INT 78 - TARGA.DEV - FINISH DATA TRANSFER (DMA)
  3083.     AH = 15h
  3084. Return: AH = SCSI status byte
  3085.     CF clear if successful
  3086.         AL = SCSI message byte
  3087.     CF set on error
  3088.         AL = error code (see #2913)
  3089. Note:    if AH=06h was previously called to set the early return mode, this
  3090.       function finishes a command AH=13h or AH=14h which returned before
  3091.       the last DMA transfer was finished
  3092. SeeAlso: AH=06h,AH=13h,AH=14h
  3093. --------V-79---------------------------------
  3094. INT 79 - AVATAR.SYS - FAST GET KEYSTROKE
  3095. Return: CF set if no keystroke available
  3096.         AX = FFFFh
  3097.     CF clear if key pressed
  3098.         AX = keystroke
  3099. Program: AVATAR.SYS is a CON driver by George Adam Stanislav which interprets
  3100.       AVATAR command codes just as ANSI.SYS interprets ANSI commands
  3101. Note:    if a keystroke is available, it is removed from the keyboard buffer
  3102.       before being returned
  3103. SeeAlso: INT 29,INT 2F/AX=1A00h/BX=4156h
  3104. --------E-79---------------------------------
  3105. INT 79 - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ1
  3106. Notes:    this vector is overwritten when GO32 starts but is not restored by
  3107.       early versions of the extender
  3108.     the newest versions of GO32 dynamically allocate the vectors used
  3109.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  3110. SeeAlso: INT 09,INT 78"GO32",INT 7A"GO32"
  3111. --------d-79---------------------------------
  3112. INT 79 U - ADP-60 IDE adapter - ???
  3113. SeeAlso: INT 78"ADP-60"
  3114. --------E-79---------------------------------
  3115. INT 79 - DBOS DOS Extender
  3116.     details not available
  3117. Desc:    this interrupt is used by an MS Windows virtual device driver with
  3118.       which the DBOS extender communicates when run inside a Windows
  3119.       Enhanced Mode DOS box
  3120. SeeAlso: INT 78"DBOS"
  3121. --------A-790001-----------------------------
  3122. INT 79 R - AutoCAD Device Interface - DIGITIZER - INITIALIZE
  3123.     AX = 0001h
  3124.     BX = interface level (0001h)
  3125. Return: AX = status (0000h initialization failed, 0001h init successful)
  3126.     BX = digitizer type
  3127.         0000h relative pointing device (mouse, etc.)
  3128.         0001h digitizing tablet
  3129.     CX = digitizer dataflow type
  3130.         0000h continuous
  3131.         0001h pauses between packets
  3132. SeeAlso: AX=0002h,AX=0003h,INT 7A/AX=0001h"AutoCAD"
  3133. --------A-790002-----------------------------
  3134. INT 79 R - AutoCAD Device Interface - DIGITIZER - TERMINATE
  3135.     AX = 0002h
  3136. SeeAlso: AX=0001h,AX=0003h
  3137. --------A-790003-----------------------------
  3138. INT 79 R - AutoCAD Device Interface - DIGITIZER - GET DIGITIZER STATUS
  3139.     AX = 0003h
  3140. Return: AX = status
  3141.         0000h nothing
  3142.         0002h tracking point (no button pressed)
  3143.         BX = X coordinate
  3144.         CX = Y coordinate
  3145.         0003h picked point (button 0,A,B,C,D pressed)
  3146.         BX = X coordinate
  3147.         CX = Y coordinate
  3148.         0004h button pick
  3149.         BX = button number
  3150.         0005h button and coordinates
  3151.         BX = button number
  3152.         CX = X coordinate
  3153.         DX = Y coordinate
  3154. SeeAlso: AX=0001h,AX=0002h
  3155. --------N-7A---------------------------------
  3156. INT 7A U - Topware Network Operating System - ???
  3157.     AL = ???
  3158.     ???
  3159. Return: ???
  3160. SeeAlso: INT 21/AX=FF00h"Topware",INT 2F/AX=FF00h
  3161. --------N-7A---------------------------------
  3162. INT 7A - X.PC Packet software interface
  3163.     ES:BX -> parameter block
  3164. SeeAlso: INT 60/AX=01FFh
  3165. --------E-7A---------------------------------
  3166. INT 7A - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ2
  3167. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  3168.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  3169. Notes:    this vector is overwritten when GO32 starts but is not restored by
  3170.       early versions of the extender
  3171.     the newest versions of GO32 dynamically allocate the vectors used
  3172.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  3173. SeeAlso: INT 0A,INT 79"GO32",INT 7B"GO32"
  3174. --------P-7A---------------------------------
  3175. INT 7A O - PRINDIR - API (moved to INT 7C)
  3176. SeeAlso: INT 7C"PRINDIR"
  3177. --------N-7A---------------------------------
  3178. INT 7A - Novell NetWare - LOW-LEVEL API - Notes
  3179. Note:    this interrupt is used for IPX/SPX access in NetWare versions through
  3180.       2.0a; in later versions, you should use INT 2F/AX=7A00h to get an
  3181.       entry point even though INT 7A still exists.    For both INT 7A and
  3182.       the FAR entry point, BX contains the function number; IPX is
  3183.       sometimes called internally with BX bit 15 set, which causes the
  3184.       handler to bypass some initial checks and an optional call to the
  3185.       IPX Windows support handler set with INT 2F/AX=7AFFh/BX=0000h
  3186.       (see #2100)
  3187. SeeAlso: INT 2F/AX=7A00h,INT 64"Novell",INT 7A/BX=0000h
  3188. --------N-7A----BX0000-----------------------
  3189. INT 7A - Novell NetWare - IPX Driver - OPEN SOCKET
  3190.     BX = 0000h
  3191.     AL = socket longevity
  3192.         00h open until close or terminate
  3193.         FFh open until close
  3194.     DX = socket number (high byte in DL)
  3195.         0000h dynamic allocation
  3196.         else  socket to open (see #2936)
  3197. Return: AL = return code
  3198.         00h success
  3199.         DX = socket number
  3200.         FEh socket table full
  3201.         FFh socket already open
  3202. Notes:    TSRs which need to use sockets should set AL to FFh, non-resident
  3203.       programs should normally use AL=00h
  3204.     IPX can be configured to support up to 150 open sockets on a
  3205.       workstation, and defaults to 20
  3206.     this function is supported by Advanced NetWare 1.02+
  3207. SeeAlso: INT 7A/BX=0001h,INT 7A/BX=0004h,INT 7A/BX=0023h
  3208.  
  3209. (Table 2936)
  3210. Values for IPX socket number:
  3211.  0451h    File Service (NetWare Core Protocol)
  3212.  0452h    Service Advertising Protocol (see #2944)
  3213.  0453h    Routing Information Packet (see #2947)
  3214.  0455h    NetBIOS Packet
  3215.  0456h    diagnostics
  3216.  0457h    server serial numbers (labeled "Copy Protection" by Lanalyzer)
  3217.  2222h    NetWare Core Protocol
  3218.  4000h-7FFFh used for dynamic allocation
  3219.  4444h    Brightwork Development's SiteLock server
  3220.  5555h    Brightwork Development's SiteLock client (workstation)
  3221.  8000h-FFFFh assigned by Novell
  3222.  869Ch    ID Software's DOOM
  3223. Note:    SiteLock is an application metering product using IPX to communicate
  3224.       between the application and the license server
  3225. --------N-7A----BX0001-----------------------
  3226. INT 7A - Novell NetWare - IPX Driver - CLOSE SOCKET
  3227.     BX = 0001h
  3228.     DX = socket number (high byte in DL) (see #2936)
  3229. Notes:    also cancels events set by any Event Control Blocks for the socket
  3230.     the program must close all open sockets before terminating
  3231.     this function is supported by Advanced NetWare 1.02+
  3232. SeeAlso: BX=0000h
  3233. --------N-7A----BX0002-----------------------
  3234. INT 7A - Novell NetWare - IPX Driver - GET LOCAL TARGET
  3235.     BX = 0002h
  3236.     ES:SI -> target internetwork address (see #2951 at INT 7A/BX=000Bh)
  3237.     ES:DI -> 6-byte buffer for local target
  3238. Return: AL = return code
  3239.         00h success
  3240.            CX = expected one-way transfer time (clock ticks) for a 576-byte
  3241.               packet
  3242.            ES:DI -> local target
  3243.         FAh unsuccessful (no path to destination)
  3244. Notes:    the internetwork address consists of a 4-byte network address followed
  3245.       by a 6-byte node address.  The local target is only a 6-byte node
  3246.       address.  If the target is in the same network, the local target is
  3247.       just the node address of target; otherwise, the local target is the
  3248.       node address of the bridge that leads to the target.
  3249.     this function may be called from inside IPX and AES Event Service
  3250.       Routines, but not from other interrupt handlers
  3251.     this function is supported by Advanced NetWare 1.02+
  3252. SeeAlso: BX=0009h
  3253. --------N-7A----BX0003-----------------------
  3254. INT 7A - Novell NetWare - IPX Driver - SEND PACKET
  3255.     BX = 0003h
  3256.     ES:SI -> Event Control Block (see #2937,#2938)
  3257. Notes:    returns immediately; IPX attempts to send the packet in the background
  3258.     this function is supported by Advanced NetWare 1.02+
  3259.     this function is nearly identical to BX=000Fh, except that it always
  3260.       copies the source address into the IPX header assumed to be at the
  3261.       beginning of the first fragment
  3262. SeeAlso: BX=0004h,BX=000Fh,INT 21/AH=EEh"Novell"
  3263.  
  3264. Format of IPX Event Control Block:
  3265. Offset    Size    Description    (Table 2937)
  3266.  00h    DWORD    Link
  3267.  04h    DWORD    -> Event Service Routine (00000000h if none) (see #2941)
  3268.  08h    BYTE    in use flag (see #2939)
  3269.  09h    BYTE    completion code (see #2940)
  3270.  0Ah    WORD    (big-endian) socket number (see #2936)
  3271.  0Ch  4 BYTEs    IPX workspace
  3272.  10h 12 BYTEs    driver workspace
  3273.  1Ch  6 BYTEs    immediate local node address
  3274.  22h    WORD    fragment count
  3275.  24h    var    fragment descriptors
  3276.         Offset    Size    Description
  3277.          00h    DWORD    -> fragment data
  3278.          04h    WORD    size of fragment in bytes.
  3279. Notes:    ESR is a far procedure that is called when the ECB has been handled.
  3280.       On call, the in use flag is zero if the ECB has been handled,
  3281.       non-zero otherwise. If the flag is zero, the completion code holds
  3282.       the result of the event.
  3283.     the first fragment should start with an IPX header (see #2942)
  3284.     all fragments are concatenated and sent in one piece
  3285.     node address FFh FFh FFh FFh FFh FFh broadcasts to all nodes
  3286. SeeAlso: #2938
  3287.  
  3288. Format of AES-ECB:
  3289. Offset    Size    Description    (Table 2938)
  3290.  00h    DWORD    Link
  3291.  04h    DWORD    ESR (Event Service Routine) address (see #2941)
  3292.  08h    BYTE    in use flag (see #2939)
  3293.  09h  5 BYTEs    AES workspace
  3294. SeeAlso: #2937
  3295.  
  3296. (Table 2939)
  3297. Values for ECB in use flag:
  3298.  00h    available
  3299.  E0h    AES temporary
  3300.  F6h    \ special IPX/SPX processing for v3.02+
  3301.  F7h    /
  3302.  F8h    IPX in critical section
  3303.  F9h    SPX listening
  3304.  FAh    processing
  3305.  FBh    holding
  3306.  FCh    AES waiting
  3307.  FDh    AES couting down delay time
  3308.  FEh    awaiting packet reception
  3309.  FFh    sending packet
  3310. SeeAlso: #2937,#2938,#2940
  3311.  
  3312. (Table 2940)
  3313. Values for ECB completion code:
  3314.  00h    success
  3315.  ECh    remote terminated connection without acknowledging packet
  3316.  EDh    abnormal connection termination
  3317.  EEh    invalid connection ID
  3318.  EFh    SPX connection table full
  3319.  F9h    event should not be cancelled
  3320.  FAh    cannot establish connection with specified destination
  3321.  FCh    cancelled
  3322.  FDh    malformed packet
  3323.  FEh    packet undeliverable
  3324.  FFh    physical error
  3325. SeeAlso: #2937,#2939
  3326.  
  3327. (Table 2941)
  3328. Values Event Service Routine is called with:
  3329.     AL = caller's identity (00h = AES, FFh = IPX)
  3330.     ES:SI -> event control block
  3331.     interrupts disabled
  3332. Return: all registers preserved
  3333. SeeAlso: #2937,#2942
  3334.  
  3335. Format of IPX header:
  3336. Offset    Size    Description    (Table 2942)
  3337.  00h    WORD    (big-endian) checksum
  3338.  02h    WORD    (big-endian) length in bytes of total packet
  3339.  04h    BYTE    transport control
  3340.  05h    BYTE    packet type (see #2943)
  3341.  06h 10 BYTEs    destination internetwork address
  3342.  10h    WORD    (big-endian) destination socket
  3343.  12h 10 BYTEs    source internetwork address
  3344.  1Ch    WORD    (big-endian) source socket
  3345. SeeAlso: #2937,#2953
  3346.  
  3347. (Table 2943)
  3348. Values for IPX packet type:
  3349.  00h    unknown packet type
  3350.  01h    routing information packet
  3351.  02h    echo packet
  3352.  03h    error packet
  3353.  04h    packet exchange packet (always use this one)
  3354.  05h    SPX packet (see #2953)
  3355.  11h    NetWare Core Protocol
  3356.  14h    Propagated Packet (for NetWare), NetBIOS name packet
  3357.  15h-1Eh experimental protocols
  3358. Note:    undocumented packet type 14h will cross up to 16 networks deep in
  3359.       all directions; as Aaron Martin of Origin Systems discovered, the
  3360.       first 64 bytes of the IPX data in such packets should be considered
  3361.       reserved, as IPX places the traversed server nodes there.
  3362.  
  3363. Format of Service Advertising Protocol Service Query Packet:
  3364. Offset    Size    Description    (Table 2944)
  3365.  00h 30 BYTEs    IPX header
  3366.  1Eh    WORD    (big-endian) query type
  3367.         0001h general find service
  3368.         0003h find nearest server
  3369.  20h    WORD    (big-endian) server type (see INT 21/AH=E3h"NetWare")
  3370. SeeAlso: #2945
  3371.  
  3372. Format of Service Advertising Protocol Server Identification Packet:
  3373. Offset    Size    Description    (Table 2945)
  3374.  00h 30 BYTEs    IPX header
  3375.  1Eh    WORD    (big-endian) response type
  3376.         0002h general service
  3377.         0004h nearest service
  3378.  20h 64N BYTEs    server entries (1-7) (see #2946)
  3379. SeeAlso: #2944,#2947
  3380.  
  3381. Format of SAP server entry:
  3382. Offset    Size    Description    (Table 2946)
  3383.  00h    WORD    (big-endian) server type (see INT 21/AH=E3h"NetWare")
  3384.  02h 48 BYTEs    ASCIZ server name
  3385.  32h  2 WORDs    (big-endian) network number
  3386.  34h  3 WORDs    (big-endian) node number
  3387.  3Ch    WORD    (big-endian) socket number
  3388.  3Eh    WORD    (big-endian) number of hops between caller and server
  3389.  
  3390. Format of IPX Routing Information packet:
  3391. Offset    Size    Description    (Table 2947)
  3392.  00h 30 BYTEs    IPX header
  3393.  1Eh    WORD    operation (0001h request, 0002h response)
  3394.  20h 8N BYTEs    network entries (1-50) (see #2948)
  3395. SeeAlso: #2945
  3396.  
  3397. Format of RIP network entry:
  3398. Offset    Size    Description    (Table 2948)
  3399.  00h    DWORD    network number (FFFFFFFFh = general request)
  3400.  04h    WORD    (response) number of hops
  3401.  06h    WORD    (response) number of clock ticks to reach destination
  3402. --------N-7A----BX0004-----------------------
  3403. INT 7A - Novell NetWare - IPX Driver - LISTEN FOR PACKET
  3404.     BX = 0004h
  3405.     ES:SI -> Event Control Block (see BX=0003h)
  3406. Return: AL = status
  3407.         00h successful
  3408.         FFh no listening socket for packet
  3409. Desc:    this function provides IPX with an ECB for receiving an IPX packet, but
  3410.       does not wait for a packet to arrive
  3411. Notes:    the application must open a socket and initialize the ECB's ESR
  3412.       address, socket number, fragment count, and fragment descriptor
  3413.       fields before invoking this function
  3414.     there is no limit on the number of ECBs which may simultaneously be
  3415.       listening on a socket
  3416.     this function is supported by Advanced NetWare 1.02+
  3417. SeeAlso: BX=0000h,BX=0003h
  3418. --------N-7A----BX0005-----------------------
  3419. INT 7A - Novell NetWare - IPX Driver - SCHEDULE IPX EVENT
  3420.     BX = 0005h
  3421.     AX = delay time in clock ticks
  3422.     ES:SI -> Event Control Block (see BX=0003h)
  3423. Note:    this function is supported by Advanced NetWare 1.02+
  3424. SeeAlso: BX=0006h,BX=0007h,BX=0008h
  3425. --------N-7A----BX0006-----------------------
  3426. INT 7A - Novell NetWare - IPX Driver - CANCEL EVENT
  3427.     BX = 0006h
  3428.     ES:SI -> Event Control Block (see BX=0003h)
  3429. Return: AL = return code (see #2949)
  3430. Notes:    cannot cancel packets which the node's driver has already sent
  3431.     this function is supported by Advanced NetWare 1.02+
  3432. SeeAlso: BX=0005h
  3433.  
  3434. (Table 2949)
  3435. Values for IPX return code:
  3436.  00h    success
  3437.  F9h    event in use
  3438.  FCh    event cancelled
  3439.  FFh    unsuccessful, event not in use, or unrecognized ECB flag
  3440. --------N-7A----BX0007-----------------------
  3441. INT 7A - Novell NetWare - IPX Driver - SCHEDULE SPECIAL EVENT
  3442.     BX = 0007h
  3443.     AX = delay time
  3444.     ES:SI -> Event Control Block (see BX=0003h)
  3445. Note:    this function is supported by Advanced NetWare 1.02+
  3446. SeeAlso: BX=0006h
  3447. --------N-7A----BX0008-----------------------
  3448. INT 7A - Novell NetWare - IPX Driver - GET INTERVAL MARKER
  3449.     BX = 0008h
  3450. Return: AX = interval marker in clock ticks (big-endian???)
  3451. Notes:    may be used to measure the time elapsed between two events, up to one
  3452.       hour
  3453.     this function is supported by Advanced NetWare 1.02+
  3454. SeeAlso: BX=0005h
  3455. --------N-7A----BX0009-----------------------
  3456. INT 7A - Novell NetWare - IPX Driver - GET INTERNETWORK ADDRESS
  3457.     BX = 0009h
  3458.     ES:SI -> buffer for own internetwork address (see #2950)
  3459. Return: ES:SI buffer filled
  3460.     SI destroyed
  3461. Note:    this function is supported by Advanced NetWare 1.02+
  3462. SeeAlso: BX=0002h,BX=000Bh
  3463.  
  3464. Format of IPX internetwork address:
  3465. Offset    Size    Description    (Table 2950)
  3466.  00h  4 BYTEs    (big-endian) network number
  3467.  04h  6 BYTEs    (big-endian) node number within network
  3468. --------N-7A----BX000A-----------------------
  3469. INT 7A - Novell NetWare - IPX Driver - RELINQUISH CONTROL
  3470.     BX = 000Ah
  3471. Desc:    this call indicates that the application is idle and permits the IPX
  3472.       driver to do some work
  3473. Note:    this function is supported by Advanced NetWare 1.02+
  3474. SeeAlso: INT 15/AX=1000h,INT 21/AH=89h,INT 2F/AX=1680h
  3475. --------N-7A----BX000B-----------------------
  3476. INT 7A - Novell NetWare - IPX Driver - DISCONNECT FROM TARGET
  3477.     BX = 000Bh
  3478.     ES:SI -> internetwork address (see #2951)
  3479. Return: nothing
  3480. Notes:    this function permits the network software on the remote machine to
  3481.       remove any virtual connection with the calling machine
  3482.     only use in point-to-point networks
  3483.     should never be called from within an Event Service Routine
  3484.     this function is supported by Advanced NetWare 1.02+
  3485. SeeAlso: BX=0002h,BX=0009h
  3486.  
  3487. Format of IPX internetwork address:
  3488. Offset    Size    Description    (Table 2951)
  3489.  00h  4 BYTEs    (big-endian) destination network
  3490.  04h  6 BYTEs    (big-endian) destination node
  3491.  0Ah  2 BYTEs    (big-endian) destination socket
  3492. --------N-7A----BX000C-----------------------
  3493. INT 7A U - Novell NetWare - IPX Driver - internal - INITIALIZE NETWORK ADDRESS
  3494.     BX = 000Ch
  3495.     CX:DX = global network address (see INT 7A/BX=0002h)
  3496.     ES:DI -> "OSINCRITICALSECTION" flag
  3497.     DS:SI -> current mode for socket
  3498. Note:    the address cannot be changed once it has been initialized
  3499. SeeAlso: INT 7A/BX=0024h
  3500. --------N-7A----BX000D-----------------------
  3501. INT 7A U - Novell NetWare - IPX Driver - internal - IPX GET PACKET SIZE
  3502.     BX = 000Dh
  3503. Return: AX = maximum packet size
  3504.     CX = retry count
  3505. SeeAlso: BX=001Ah
  3506. --------N-7A----BX000E-----------------------
  3507. INT 7A U - Novell NetWare - IPX Driver - internal - TERMINATE SOCKETS
  3508.     BX = 000Eh
  3509. Return: nothing
  3510. Notes:    this function terminates all sockets opened with the current mode; this
  3511.       may be intended for future enhancements as the socket mode never
  3512.       changes in v2.15
  3513.     called by the NetWare shell if a program terminates
  3514. --------N-7A----BX000F-----------------------
  3515. INT 7A - Novell NetWare - IPX Driver - INTERNAL - SEND PACKET
  3516.     BX = 000Fh
  3517.     ES:SI -> Event Control Block (see BX=0003h)
  3518. Note:    nearly identical to function 0003h, but does not copy address into
  3519.       the first fragment, and bypasses normal error checking
  3520. SeeAlso: BX=0003h
  3521. --------N-7A----BX0010-----------------------
  3522. INT 7A - Novell NetWare - SPX Driver - INSTALLATION CHECK
  3523.     BX = 0010h
  3524.     AL = 00h
  3525. Return: AL = status
  3526.         00h if SPX not installed
  3527.         F0h if IPX not installed
  3528.         FFh if SPX loaded
  3529.         BH = SPX major version
  3530.         BL = SPX minor version
  3531.         CX = maximum SPX connections
  3532.         DX = SPX connections available
  3533. Notes:    this function is supported by Advanced NetWare 2.1+
  3534.     this interrupt is used for IPX/SPX access in NetWare versions through
  3535.       2.0a; in later versions, you should use INT 2F/AX=7A00h to get an
  3536.       entry point even though INT 7A still exists.    For both INT 7A and
  3537.       the FAR entry point, BX contains the function number
  3538.     IPX is sometimes called internally with BX bit 15 set, which causes the
  3539.       entry point handler to bypass some checks and an optional call to
  3540.       the IPX Windows support handler set with INT 2F/AX=7AFFh/BX=0000h
  3541.       (see #2100)
  3542. SeeAlso: BX=0015h
  3543. --------N-7A----BX0011-----------------------
  3544. INT 7A - Novell NetWare - SPX Driver - ESTABLISH SPX CONNECTION
  3545.     BX = 0011h
  3546.     AL = retry count
  3547.     AH = watchdog flag
  3548.     ES:SI -> Event Control Block (see #2937 at BX=0003h)
  3549. Return: AL = status (00h,EFh,FDh,FFh) (see #2952)
  3550.     DX = assigned connection ID number
  3551. Desc:    attempt to establish a connection with a listening socket
  3552. Notes:    there should always be at least two SPX ECB's listening to a socket, so
  3553.       that NetWare can perform its internal packet exchanges
  3554.     the first fragment should start with a SPX header (see #2953).    Fill
  3555.       in all destination addresses.
  3556.     this function is supported by Advanced NetWare 2.1+
  3557. SeeAlso: BX=0000h,BX=0012h,BX=0013h,BX=0014h,BX=0015h
  3558.  
  3559. (Table 2952)
  3560. Values for SPX function status:
  3561.  00h    attempting to contact destination socket
  3562.  EEh    no such connection
  3563.  EFh    local connection table full
  3564.  FDh    buffer size not 42 or fragment count not 1
  3565.  FFh    sending socket not open
  3566.  
  3567. Format of SPX header:
  3568. Offset    Size    Description    (Table 2953)
  3569.  00h    WORD    (big-endian) checksum
  3570.  02h    WORD    (big-endian) length in bytes of total packet
  3571.  04h    BYTE    transport control
  3572.  05h    BYTE    packet type (see #2943 at INT 7A/BX=0003h)
  3573.  06h 10 BYTEs    destination internet address
  3574.  10h    WORD    (big-endian) destination socket
  3575.  12h 10 BYTEs    source internet address
  3576.  1Ch    WORD    (big-endian) source socket
  3577.  1Eh    BYTE    connection control (see #2954)
  3578.  1Fh    BYTE    datastream type
  3579.         FEh terminate connection request packet
  3580.         FFh terminate connection acknowledgement packet
  3581.         other user-defined, ignored by SPX
  3582.  20h    WORD    (big-endian) source connection ID
  3583.  22h    WORD    (big-endian) destination connection ID
  3584.  24h    WORD    (big-endian) sequence number
  3585.  26h    WORD    (big-endian) acknowledge number
  3586.  28h    WORD    (big-endian) allocation number
  3587. SeeAlso: #2942
  3588.  
  3589. Bitfields for SPX connection control:
  3590. Bit(s)    Description    (Table 2954)
  3591.  3-0    unused???
  3592.  4    end of message
  3593.  5    reserved
  3594.  6    acknowledgement required
  3595.  7    system packet
  3596. --------N-7A----BX0012-----------------------
  3597. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX CONNECTION
  3598.     BX = 0012h
  3599.     AH = watchdog flag (00h disabled, 01h enabled)
  3600.     AL = retry count (00h = default)
  3601.     ES:SI -> Event Control Block (see #2937 at BX=0003h)
  3602. Return: nothing
  3603. Notes:    there should always be at least two SPX ECB's listening to a socket, so
  3604.       that NetWare can perform its internal packet exchanges
  3605.     this function is supported by Advanced NetWare 2.1+
  3606. SeeAlso: BX=0011h,BX=0013h,BX=0014h
  3607. --------N-7A----BX0013-----------------------
  3608. INT 7A - Novell NetWare - SPX Driver - TERMINATE SPX CONNECTION
  3609.     BX = 0013h
  3610.     DX = connection ID to terminate
  3611.     ES:SI -> Event Control Block (see #2937 at BX=0003h)
  3612. Note:    this function is supported by Advanced NetWare 2.1+
  3613. SeeAlso: BX=0011h,BX=0012h,BX=0014h
  3614. --------N-7A----BX0014-----------------------
  3615. INT 7A - Novell NetWare - SPX Driver - ABORT SPX CONNECTION
  3616.     BX = 0014h
  3617.     DX = connection ID to terminate
  3618. Return: nothing
  3619. Notes:    this function is supported by Advanced NetWare 2.1+
  3620.     this function does not tell the other side that the connection has been
  3621.       terminated
  3622.     also aborts any outstanding Establish Connection, Terminate Connection,
  3623.       and Send Sequenced Packet commands
  3624. SeeAlso: BX=0011h,BX=0013h
  3625. --------N-7A----BX0015-----------------------
  3626. INT 7A - Novell NetWare - SPX Driver - GET SPX CONNECTION STATUS
  3627.     BX = 0015h
  3628.     DX = connection ID
  3629.     ES:SI -> status buffer (see #2955)
  3630. Return: AL = return code (00h,EEh) (see also #2952)
  3631.         00h connection still valid
  3632.         ES:SI -> status buffer filled
  3633. Note:    this function is supported by Advanced NetWare 2.1+
  3634. SeeAlso: BX=0010h,BX=0011h
  3635.  
  3636. Format of SPX status buffer:
  3637. Offset    Size    Description    (Table 2955)
  3638.  00h    BYTE    connection state
  3639.         01h waiting to establish connection
  3640.         02h starting (attempting to create connection)
  3641.         03h connection established
  3642.         04h terminating
  3643.  01h    BYTE    watchdog flag
  3644.         bit 0: used internally by SPX
  3645.         bit 1: SPX watchdog is monitoring connection
  3646.         bits 2-7 used internally by SPX
  3647.  02h    WORD    (big-endian) source connection ID
  3648.  04h    WORD    (big-endian) destination connection ID
  3649.  06h    WORD    (big-endian) sequence number of next packet sent
  3650.  08h    WORD    (big-endian) acknowledge number, expected sequence number of
  3651.           next received packet
  3652.  0Ah    WORD    (big-endian) maximum sequence number remote SPX may send
  3653.           without ACK from local SPX
  3654.  0Ch    WORD    (big-endian) remote acknowledge number, next sequence number
  3655.           remote SPX expects to receive
  3656.  0Eh    WORD    (big-endian) remote allocation number, maximum sequence number
  3657.           local SPX may send
  3658.  10h    WORD    (big-endian) connection socket
  3659.  12h  6 BYTEs    immediate node address--bridge on local network to destination
  3660.  18h 10 BYTEs    destination internetwork address (see #2951 at INT 7A/BX=000Bh)
  3661.  22h    WORD    (big-endian) retransmit count
  3662.  24h    WORD    (big-endian) estimated roundtrip delay
  3663.  26h    WORD    (big-endian) retransmitted packets
  3664.  28h    WORD    (big-endian) suppressed packets
  3665.  2Ah 12 BYTEs    ??? (v2.15)
  3666. --------N-7A----BX0016-----------------------
  3667. INT 7A - Novell NetWare - SPX Driver - SEND SPX PACKET
  3668.     BX = 0016h
  3669.     DX = connection ID
  3670.     ES:SI -> Event Control Block (see BX=0003h)
  3671. Notes:    this function is supported by Advanced NetWare 2.1+
  3672.     CX may need to be 0001h ???
  3673. SeeAlso: BX=0011h,BX=0017h
  3674. --------N-7A----BX0017-----------------------
  3675. INT 7A - Novell NetWare - SPX Driver - LISTEN FOR SPX PACKET
  3676.     BX = 0017h
  3677.     DX = connection ID (unused in v2.15)
  3678.     ES:SI -> Event Control Block (see BX=0003h)
  3679. Notes:    this function is supported by Advanced NetWare 2.1+
  3680.     CX may need to be 0001h ???
  3681. SeeAlso: BX=0011h,BX=0016h
  3682. --------N-7A----BX0018-----------------------
  3683. INT 7A U - Novell NetWare - IPX Driver - internal - ADD DIAGNOSTIC ELEMENT
  3684.     BX = 0018h
  3685.     ES:SI -> diagnostic element (see #2956) to be added to Diagnostic Queue
  3686. Note:    this function is supported on file servers only under v2.15; v3.02 also
  3687.       supports it on workstations
  3688. SeeAlso: BX=0019h
  3689.  
  3690. Format of IPX diagnostic element:
  3691. Offset    Size    Description    (Table 2956)
  3692.  00h    DWORD    pointer to next diagnostic element
  3693.  04h    DWORD    pointer to function for ???
  3694.  08h    DWORD    pointer to function for ???
  3695. --------N-7A----BX0019-----------------------
  3696. INT 7A U - Novell NetWare - IPX Driver - internal - CANCEL DIAGNOSTIC ELEMENT
  3697.     BX = 0019h
  3698.     ES:SI -> diagnostic element (see BX=0018h) to be removed
  3699. Note:    this function is supported on file servers only under v2.15; v3.02 also
  3700.       supports it on workstations
  3701. SeeAlso: BX=0018h
  3702. --------N-7A----BX001A-----------------------
  3703. INT 7A - Novell NetWare - IPX Driver - internal - GET DRIVER PACKT SIZE LIMIT
  3704.     BX = 001Ah
  3705. Return: AX = maximum packet size with preamble (at least 576 bytes)
  3706.     CX = IPX retry count
  3707.     DS,FLAGS preserved
  3708. Note:    this function is has existed since November 1989; it is documented in
  3709.       Novell document FYI.A.3709, 03May91
  3710. SeeAlso: BX=000Dh
  3711. --------N-7A----BX001B-----------------------
  3712. INT 7A U - Novell NetWare - IPX Driver - INTERNAL
  3713.     BX = 001Bh
  3714.     ???
  3715. Return: ???
  3716. Notes:    this function is supported on file servers only under v2.15; v3.02 also
  3717.       supports it on workstations
  3718.     used by NetWare Access Server, which may call INT 15/AX=1117h with
  3719.       BX=0000h in some cases (it uses a modified DESQview)
  3720. --------N-7A----BX001C-----------------------
  3721. INT 7A U - Novell NetWare - NetWare Access Server - GET ???
  3722.     BX = 001Ch
  3723. Return: AX = length of ???
  3724.     ES:BX -> ???
  3725. Notes:    these functions are NOPs for standard IPX drivers such as IPXODI v2.12
  3726. SeeAlso: INT 2F/AX=7AF1h,INT 7A/BX=001Dh,INT 7A/BX=001Eh
  3727. --------N-7A----BX001D-----------------------
  3728. INT 7A U - Novell NetWare - NetWare Access Server - GET ??? ECB AND SOCKET
  3729.     BX = 001Dh
  3730. Return: DX = socket number chosen by IPX
  3731.     ES:SI -> ECB in IPX's code segment (will be listening)
  3732.     BX corrupted
  3733. Notes:    these functions are NOPs for standard IPX drivers such as IPXODI v2.12
  3734. SeeAlso: INT 2F/AX=7AF1h,INT 7A/BX=001Ch,INT 7A/BX=001Eh
  3735. --------N-7A----BX001E-----------------------
  3736. INT 7A U - Novell NetWare - NetWare Access Server - GET ??? ECB
  3737.     BX = 001Eh
  3738. Return: ES:SI -> ECB
  3739.     BX corrupted
  3740. Notes:    these functions are NOPs for standard IPX drivers such as IPXODI v2.12
  3741. SeeAlso: INT 2F/AX=7AF1h,INT 7A/BX=001Ch,INT 7A/BX=001Dh
  3742. --------N-7A----BX001F-----------------------
  3743. INT 7A - Novell NetWare - IPXODI v2.12+ - GET IPX FLAGS
  3744.     BX = 001Fh
  3745.     DX = 0000h
  3746. Return: AX = ???
  3747.     BX:CX -> ??? entry point (see #2957)
  3748.     DX = feature flags
  3749.         bit 0: IPXODI rather than dedicated IPX
  3750.         bit 1: checksumming functions 0020h-0022h supported
  3751.     ES:SI -> array of words containing used socket number (undocumented);
  3752.         0000h ends array
  3753.     all other registers except DS and FLAGS may be destroyed
  3754. Note:    IPXODI v2.12 is distributed as part of the Personal NetWare system
  3755.       bundled with Novell DOS 7
  3756. SeeAlso: BX=0020h,INT 2F/AX=7A2Fh
  3757.  
  3758. (Table 2957)
  3759. Call IPXODI entry point with:
  3760.     ES:SI -> ECB??? (offset 24h is far pointer to ??? data)
  3761. --------N-7A----BX0020-----------------------
  3762. INT 7A - Novell NetWare - IPXODI v2.12+ - SEND WITH CHECKSUM
  3763.     BX = 0020h
  3764.     ES:SI -> ECB (see #2937 at INT 7A/BX=0003h)
  3765. Return: DS,FLAGS preserved
  3766.     BX,BP corrupted (documented as potentially destroying all other regs)
  3767. Desc:    generate a checksum for the packet data and store it in the IPX
  3768.       checksum field before transmitting the packet
  3769. SeeAlso: BX=001Fh,BX=0021h,BX=0022h,INT 2F/AX=7A2Fh
  3770. --------N-7A----BX0021-----------------------
  3771. INT 7A - Novell NetWare - IPXODI v2.12+ - IPX GENERATE CHECKSUM
  3772.     BX = 0021h
  3773.     ES:SI -> ECB data (see #2937 at INT 7A/BX=0003h)
  3774. Return: ES,DS,SI preserved
  3775.     BX,BP corrupted, all other registers potentially destroyed
  3776. Notes:    the checksum and TransportControl fields of the IPX packet are updated
  3777.     this function enables interrupts and is fully reentrant
  3778. SeeAlso: BX=001Fh,BX=0020h,BX=0022h,INT 2F/AX=7A2Fh
  3779. --------N-7A----BX0022-----------------------
  3780. INT 7A - Novell NetWare - IPXODI v2.12+ - IPX VERIFY CHECKSUM
  3781.     BX = 0022h
  3782.     ES:SI -> ECB data (see #2937 at INT 7A/BX=0003h)
  3783. Return: AX = status (0000h checksum matches)
  3784.     DS,ES,SI preserved
  3785.     BX,BP corrupted, all other registers potentially destroyed
  3786. Note:    this function enables interrupts and is fully reentrant
  3787. SeeAlso: BX=001Fh,BX=0020h,BX=0021h,INT 2F/AX=7A2Fh
  3788. --------N-7A----BX0023-----------------------
  3789. INT 7A - Novell NetWare - IPXODI v2.12+ - OPEN LOOK-AHEAD SOCKET
  3790.     BX = 0023h
  3791.     DX = socket number (0000h for dynamic allocation)
  3792.     ES:SI -> Look Ahead handler (see #2958)
  3793.     BP = desired lookahead size (0000h-0080h)
  3794. Return: AL = status
  3795.         00h successful
  3796.         DX = assigned socket number (big-endian)
  3797.         FEh maximum number of sockets already open
  3798.         FFh specific socket already opened by another application
  3799.     DS,FLAGS preserved
  3800.     all other registers may be destroyed
  3801. Notes:    the socket will always be long-lived, and must thus be explicitly
  3802.       closed with INT 7A/BX=0001h before the Look Ahead handler code is
  3803.       removed from memory (i.e. the program terminates)
  3804.     this function is only supported if INT 2F/AX=7A00h returns ES:BX
  3805.       pointing at an IPX version greater than 3.30
  3806.     the desired lookahead size is the smallest-size packet (including IPX
  3807.       header) that should be passed to the lookahead handler when it
  3808.       arrives
  3809. SeeAlso: INT 7A/BX=0000h,INT 7A/BX=0001h
  3810.  
  3811. (Table 2958)
  3812. Call IPX Look-Ahead handler with:
  3813.     AX = packet's destination socket
  3814.     DS:SI -> look-ahead structure (see #2176 at INT 2F/AX=C000h"LSL")
  3815.     DF clear
  3816.     interrupt disabled (must remain disabled)
  3817. Return: AX = packet use
  3818.         0000h application want packet
  3819.         ES:SI -> ODI ECB (see #2177 at INT 2F/AX=C000h"LSL")
  3820.         8001h application does not want packet
  3821.     ZF set if AX=0000h
  3822.     DS,DI,BP,SS,SP preserved
  3823.     interrupts disabled
  3824. --------N-7A----BX0024-----------------------
  3825. INT 7A U - Novell NetWare - IPXODI v2.20+ - SET INTERNETWORK ADDRESS
  3826.     BX = 0024h
  3827.     ES:SI -> buffer containing internetwork address (see #2951)
  3828. Return: BX,CX,SI,DI,ES destroyed
  3829. Note:    this function differs from INT 7A/BX=000Ch in that it unconditionally
  3830.       sets the address
  3831. SeeAlso: INT 7A/BX=000Ch
  3832. --------A-7A0001-----------------------------
  3833. INT 7A R - AutoCAD Device Interface - DISPLAY - INITIALIZE (INIT1)
  3834.     AX = 0001h
  3835.     BX = configuration
  3836.     CX = interface level (0001h)
  3837. Return: AX = status
  3838.         0000h initialization failed
  3839.         0001h pre-v4.0 driver initialized successfully
  3840.         0003h post-v3.1 driver initialized successfully (driver truncates
  3841.           excessivly long packets)
  3842.     BX = width of graphics area in pixels, or 0000h if using packet
  3843.           communication
  3844.     DX:CX -> packet-mode entry point (see #2959)
  3845. SeeAlso: AX=0001h,AX=0200h,AX=07D0h,INT 61/AX=0007h"OPTIMA",INT 78"AutoCAD"
  3846. SeeAlso: INT 79/AX=0001h,INT 7B/AX=8001h"AutoCAD",INT 7C"AutoShade"
  3847.  
  3848. (Table 2959)
  3849. Call packet-mode entry point with:
  3850. STACK:    DWORD    pointer to request packet (see #2960)
  3851.     WORD    length of packet
  3852.  
  3853. Format of request packet:
  3854. Offset    Size    Description    (Table 2960)
  3855.  00h    WORD    function number (00h-45h for Compaq VGADI41.EXE)
  3856. --------A-7A0200BX0000-----------------------
  3857. INT 7A R - AutoCAD Device Interface - RENDERING DEVICE - INITIALIZE (RDLINKUP)
  3858.     AX = 0200h
  3859.     BX = 0000h
  3860.     CX = interface level (0001h)
  3861. Return: BX = 0000h (driver uses packet communication)
  3862.     DX:CX -> packet-mode entry point (see #2959)
  3863. SeeAlso: AX=0001h"AutoCAD",INT 79/AX=0001h,INT 7B/AX=8001h"AutoCAD"
  3864. --------I-7A04-------------------------------
  3865. INT 7A - IBM 3270 Workstation Program API - CREATE A QUEUE
  3866.     AH = 04h
  3867.     ???
  3868. Return: ???
  3869. SeeAlso: AH=06h
  3870. --------I-7A06-------------------------------
  3871. INT 7A - IBM 3270 Workstation Program API - DELETE A QUEUE
  3872.     AH = 06h
  3873.     ???
  3874. Return: ???
  3875. SeeAlso: AH=04h
  3876. ----------7A07D0-----------------------------
  3877. INT 7A R - AutoCAD Device Interface - Compaq VGADI41.EXE - GET ENTRY POINT
  3878.     AX = 07D0h
  3879. Return: AX = ??? (0003h)
  3880.     BX = 0000h
  3881.     DX:CX -> ADI entry point (see AX=0001h)
  3882. SeeAlso: AX=0001h
  3883. --------I-7A09--BX8020-----------------------
  3884. INT 7A - IBM 3270 Workstation Program API - SESSION SERVICES
  3885.     AH = 09h
  3886.     BX = 8020h (synchronous request)
  3887.     CX = 0000h
  3888.     DX = ID of session manager (SESSMGR)
  3889.     AL = service (see #2961)
  3890.     ES:DI -> control block
  3891. Return: ???
  3892.  
  3893. (Table 2961)
  3894. Values for service:
  3895.  01h    get session ID
  3896.  02h    get session info
  3897.  04h    dettach from session
  3898.  05h    attach to session
  3899.  06h    get list of windows available
  3900.  07h    get environment of window
  3901.  08h    get 'PIF' (program information file) info
  3902.  0Ah    get base window ID
  3903.  0Bh    get cursor info
  3904. --------I-7A09--BX8020-----------------------
  3905. INT 7A - IBM 3270 Workstation Program API - KEYBOARD SERVICES
  3906.     AH = 09h
  3907.     BX = 8020h (synchronous request)
  3908.     CX = 0000h
  3909.     DX = ID of keyboard manager
  3910.     AL = service number (see #2962)
  3911.     ES:DI -> control block
  3912. Return: ???
  3913.  
  3914. (Table 2962)
  3915. Values for 3270 Workstation Program keyboard service:
  3916.  01h    connect to keyboard
  3917.  02h    disconnect from keyboard
  3918.  03h    read from keyboard
  3919.  04h    send keystroke to session
  3920.  05h    disable input
  3921.  06h    enable input
  3922.  07h    update status code
  3923. --------I-7A09--BX8020-----------------------
  3924. INT 7A - IBM 3270 Workstation Program API - WINDOW SERVICES
  3925.     AH = 09h
  3926.     BX = 8020h (synchronous request)
  3927.     CX = 00FFh
  3928.     DX = ID of window service controller (WSCTRL)
  3929.     AL = service number (see #2963)
  3930.     ES:DI -> control block
  3931. Return: ???
  3932.  
  3933. (Table 2963)
  3934. Values for 3270 Workstation Program window service:
  3935.  01h    connect to WS control
  3936.  02h    disconnect from WS control
  3937.  03h    add a window
  3938.  04h    change window's position on screen
  3939.  05h    change window's size
  3940.  06h    change window's color
  3941.  07h    change window's position in the presentation space
  3942.  08h    hide/unhide toggle
  3943.  09h    enlarge/reduce toggle
  3944.  0Ah    change screen background color
  3945.  0Bh    get window's position on screen
  3946.  0Ch    get window's size
  3947.  0Dh    get window's color
  3948.  0Eh    get window's position in the presentation space
  3949.  0Fh    determine whether hidden
  3950.  10h    determine whether enlarged
  3951.  11h    get background color
  3952.  12h    get window names
  3953.  13h    delete all windows from profile
  3954.  14h    pick active window
  3955.  15h    redraw screen
  3956.  16h    redraw window
  3957.  17h    delete a window from profile
  3958.  18h    get active window
  3959.  19h    get active screen
  3960.  1Ah    get window data
  3961.  1Bh    change window data
  3962.  1Ch    select active screen
  3963. --------I-7A09--BX8020-----------------------
  3964. INT 7A - IBM 3270 Workstation Program API - PRESENTATION SPACE SERVICES
  3965.     AH = 09h
  3966.     BX = 8020h
  3967.     CX = 00FFh
  3968.     DX = ID of PCPSM
  3969.     AL = service
  3970.         01h define presentation space
  3971.         02h delete presentation space
  3972.         03h display presentation space
  3973.         04h position cursor in presentation space
  3974.         05h change default presentation space
  3975.     ES:DI -> control block
  3976. Return: ???
  3977. --------I-7A09--BX8020-----------------------
  3978. INT 7A - IBM 3270 Workstation Program API - 3270 EMULATION
  3979.     AH = 09h
  3980.     BX = 8020h
  3981.     CX = 00FFh
  3982.     DX = ID of 3270EML
  3983.     AL = service
  3984.         01h connect
  3985.         02h disconnect
  3986.     ES:DI -> control block
  3987. Return: ???
  3988. --------I-7A09--BX8020-----------------------
  3989. INT 7A - IBM 3270 Workstation Program API - OPERATOR INFORMATION AREA
  3990.     AH = 09h
  3991.     BX = 8020h
  3992.     CX = 00FFh
  3993.     DX = ID of OIAM
  3994.     AL = service
  3995.         01h read Operator Information Area
  3996.         02h read OIA subset
  3997.     ES:DI -> control block
  3998. Return: ???
  3999. Note: the OIA is the 25th line on the Host session
  4000. --------I-7A09--BX8020-----------------------
  4001. INT 7A - IBM 3270 Workstation Program API - TRANSLATE DATA
  4002.     AH = 09h
  4003.     BX = 8020h
  4004.     CX = 00FFh
  4005.     DX = ID of XLATE
  4006.     AL = service
  4007.         01h translate from host characters to ASCII and vice versa
  4008.         (determined by control block byte 11)
  4009.     ES:DI -> control block
  4010. Return: ???
  4011. --------I-7A09--BX8020-----------------------
  4012. INT 7A - IBM 3270 Workstation Program API - COPY SERVICE
  4013.     AH = 09h
  4014.     BX = 8020h
  4015.     CX = 00FFh
  4016.     DX = ID of copy service
  4017.     AL = service
  4018.         01h copy string from one presentation space to another
  4019.         02h copy block from one presentation space to another
  4020.         03h connect to PC session for copy
  4021.         04h disconnect PC session from copy
  4022.     ES:DI -> control block
  4023. Return: ???
  4024. --------I-7A09--BX8020-----------------------
  4025. INT 7A - IBM 3270 Workstation Program API - Multi-DOS
  4026.     AH = 09h
  4027.     BX = 8020h
  4028.     CX = 00FFh
  4029.     ES:DI -> control block
  4030.     DX = ID of INDJQRY
  4031.         get environment size
  4032.        = ID of INDJASY
  4033.         request DOS functions from workstation
  4034.        = ID of MEMORY
  4035.         AL = function
  4036.             01h allocate memory
  4037.             02h deallocate memory
  4038.             03h modify allocated size
  4039. Return: ???
  4040. --------I-7A09-------------------------------
  4041. INT 7A - IBM 3270 Workstation Program API - HOST SERVICES
  4042.     AH = 09h
  4043.     BX = request type (4000h async, 8028h synchronous)
  4044.     CX = 0000h
  4045.     DX = ID of MFIC
  4046.     AL = service (see #2964)
  4047.     ES:DI -> control block
  4048.  
  4049. (Table 2964)
  4050. Values for 3270 Workstation Program host service:
  4051.  01h    connect to host
  4052.  02h    disconnect from host
  4053.  03h    read DFT structured data from host
  4054.  04h    write DFT structured data to host
  4055.  05h    create a host buffer
  4056. --------I-7A13-------------------------------
  4057. INT 7A - IBM 3270 Workstation Program API - GET DATA FROM A QUEUE
  4058.     AH = 13h
  4059.     ???
  4060. Return: ???
  4061. ----------7A7A-------------------------------
  4062. INT 7A - Canon IX-30F Image Scanner SI3.SYS - INTERFACE
  4063.     AH = 7Ah
  4064.     ???
  4065. Return: AX = status
  4066.         0000h success
  4067.         000Eh undefined function code
  4068. Range:    unknown, selected by device driver commandline arguments
  4069. --------I-7A81-------------------------------
  4070. INT 7A - IBM 3270 Workstation Program API - RESOLVE A GATE NAME
  4071.     AH = 81h
  4072.     ES:DI -> 8-char blank-padded gate name (see #2965)
  4073. Return: DX = gate ID
  4074.  
  4075. (Table 2965)
  4076. Values for 3270 Workstation Program gate name:
  4077.  "SESSMGR "
  4078.  "KEYBOARD"
  4079.  "WSCTRL  "
  4080.  "MFIC      "
  4081.  "PCPSM      "
  4082.  "3270EML "
  4083.  "COPY      "
  4084.  "XLATE      "
  4085.  "OIAM      "
  4086.  "MEMORY  "
  4087.  "INDJQRY "
  4088.  "INDJASY "
  4089. --------I-7A83-------------------------------
  4090. INT 7A - IBM 3270 Workstation Program API - GET COMPLETION RESULTS
  4091.     AH = 83h
  4092.     ???
  4093. Return: ???
  4094. --------I-7AFDCB-----------------------------
  4095. INT 7A - IBM Personal Communications/3270 - INSTALLATION CHECK
  4096.     AX = FDCBh
  4097. Return: DX:AX -> PCS/3270 signature block if loaded (see #2966)
  4098.  
  4099. Format of Personal Communications/3270 signature block:
  4100. Offset    Size    Description    (Table 2966)
  4101.  04h    WORD    PCS/3270 signature (5741h)
  4102.  06h    WORD    version (0501h = PCS/3270 v1.0)
  4103. --------I-7AFE01-----------------------------
  4104. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  4105.     AX = FE01h
  4106.     ???
  4107. Return: ???
  4108. SeeAlso: AX=FE02h
  4109. --------I-7AFE02-----------------------------
  4110. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL SEND/RECEIVE FUNCTION
  4111.     AX = FE02h
  4112.     ???
  4113. Return: ???
  4114. SeeAlso: AX=FE01h
  4115. --------I-7AFF01-----------------------------
  4116. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  4117.     AX = FF01h
  4118.     ES:DI -> API function handler routine
  4119. Return: CX = 1200h
  4120. SeeAlso: AX=FF02h,AX=FF03h
  4121. --------I-7AFF02-----------------------------
  4122. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API TERMINATION
  4123.     AX = FF02h
  4124. Return: CX = 1200h
  4125. SeeAlso: AX=FF01h
  4126. --------I-7AFF03-----------------------------
  4127. INT 7A - IBM PC3270 EMUL PROG v3 - INTERNAL API INITIALIZATION
  4128.     AX = FF03h
  4129.     ES:DI -> send/receive function handler routine
  4130. Return: CX = 1200h
  4131. SeeAlso: AX=FF01h
  4132. --------I-7AFF04-----------------------------
  4133. INT 7A U - IBM PC3270 EMUL PROG v3 - INTERNAL ???
  4134.     AX = FF04h
  4135.     ES:DI -> ???
  4136. Return: CX = 1200h
  4137. --------f-7B---------------------------------
  4138. INT 7B - Btrieve API (single user)
  4139.     DS:DX -> 38-byte parameter record (see #2967)
  4140. Return: return code field set
  4141. Note:    Btrieve sets low byte of vector to 33h; this serves as the installation
  4142.       check
  4143. SeeAlso: INT 2F/AX=AB01h,INT 7F/AX=0200h
  4144.  
  4145. Format of Btrieve parameter record:
  4146. Offset    Size    Description    (Table 2967)
  4147.  00h    DWORD    pointer to data buffer
  4148.  04h    WORD    data buffer length
  4149.  06h    DWORD    pointer to 90-byte record containing positioning info
  4150.         (should be same for all calls for same file)
  4151.  0Ah    DWORD    pointer to 38-byte FCB info buffer
  4152.         (should be same for all calls for same file)
  4153.  0Eh    WORD    function code (see #2968)
  4154.  10h    DWORD    pointer to file name/key buffer
  4155.  14h    BYTE    key length
  4156.  15h    BYTE    key number
  4157.  16h    DWORD    pointer to status code (see #2969)
  4158.  1Ah    WORD    interface code (version specific)
  4159.         6176h version 5.10
  4160.  
  4161. (Table 2968)
  4162. Values for function code:
  4163.  00h    open
  4164.  01h    close
  4165.  02h    insert
  4166.  03h    update
  4167.  04h    delete
  4168.  05h    get_equal
  4169.  06h    get_next
  4170.  07h    get_prev
  4171.  08h    get_greater
  4172.  09h    get_gr_eql
  4173.  0Ah    get_less
  4174.  0Bh    get_less_eq
  4175.  0Ch    get_first
  4176.  0Dh    get_last
  4177.  0Eh    create
  4178.  0Fh    stat
  4179.  10h    extend
  4180.  11h    set_dir: set directory information
  4181.  12h    get_dir: get directory information
  4182.  13h    begin_trans
  4183.  14h    end_trans
  4184.  15h    abort_trans
  4185.  16h    get_pos: get record position number
  4186.  17h    get_direct: get data by sending record position
  4187.  18h    step_next
  4188.  19h    stop
  4189.  1Ah    version
  4190.  1Bh    unlock
  4191.  1Ch    reset
  4192.  1Dh    set owner
  4193.  1Eh    clear owner
  4194.  1Fh    create supplemental index
  4195.  20h    drop supplemental index
  4196.  21h    step first
  4197.  22h    step last
  4198.  23h    step previous
  4199.  24h    get next extended: get multiple records using a filter
  4200.  25h    get previous extended: get multiple records using a filter
  4201.  26h    step next extended: get multiple records using a filter
  4202.  27h    step previous extended: get multiple records using a filter
  4203.  28h    insert extended: insert one or more records
  4204.  31h    ???
  4205. Notes:    add 50 (32h) to any "get" operation to just return the key data
  4206.     add 100 (64h) for a single-record wait lock (automatically released
  4207.       on next get)
  4208.     add 200 (C8h) for a single-record nowait lock (nowait lock returns
  4209.       error 54h or 55h if record already locked)
  4210.     add 300 (12Ch) for a multiple-record wait lock (not released until
  4211.       unlock called)
  4212.     add 400 (190h) for a multiple-record nowait lock (nowait lock returns
  4213.       error 54h or 55h if record already locked)
  4214.  
  4215. (Table 2969)
  4216. Values for Btrieve status code:
  4217.  00h    successful
  4218.  01h    invalid operation
  4219.  02h    I/O error
  4220.  03h    file not open
  4221.  04h    key value not found
  4222.  05h    duplicate key value
  4223.  06h    invalid key number
  4224.  07h    different key number
  4225.  08h    invalid positioning
  4226.  09h    end of file
  4227.  0Ah    modifiable key value error
  4228.  0Bh    invalid file name
  4229.  0Ch    file not found
  4230.  0Dh    extended file error
  4231.  0Eh    pre-image open error
  4232.  0Fh    pre-image I/O error
  4233.  10h    expansion error
  4234.  11h    close error
  4235.  12h    disk full
  4236.  13h    unrecoverable error
  4237.  14h    record manager inactive
  4238.  15h    key buffer too short
  4239.  16h    data buffer length overrun
  4240.  17h    position block length
  4241.  18h    page size error
  4242.  19h    create I/O error
  4243.  1Ah    number of keys
  4244.  1Bh    invalid key position
  4245.  1Ch    invalid record length
  4246.  1Dh    invalid key length
  4247.  1Eh    not a Btrieve file
  4248.  1Fh    file already extended
  4249.  20h    extended I/O error
  4250.  22h    invalid extension name
  4251.  23h    directory error
  4252.  24h    transaction error
  4253.  25h    transaction is active
  4254.  26h    transaction control file I/O error
  4255.  27h    end/abort transaction error
  4256.  28h    transaction max files
  4257.  29h    operation not allowed
  4258.  2Ah    incomplete accelerated access
  4259.  2Bh    invalid record address
  4260.  2Ch    null key path
  4261.  2Dh    inconsistent key flags
  4262.  2Eh    access to file denied
  4263.  2Fh    maximum open files
  4264.  30h    invalid alternate sequence definition
  4265.  31h    key type error
  4266.  32h    owner already set
  4267.  33h    invalid owner
  4268.  34h    error writing cache
  4269.  35h    invalid interface
  4270.  36h    variable page error
  4271.  37h    autoincrement error
  4272.  38h    incomplete index
  4273.  39h    expanded memory error
  4274.  3Ah    compression buffer too short
  4275.  3Bh    file already exists
  4276.  3Ch    reject count reached
  4277.  3Dh    work space too small
  4278.  3Eh    incorrect descriptor
  4279.  3Fh    invalid extended insert
  4280.  40h    filter limit reached
  4281.  41h    incorrect field offset
  4282.  4Ah    automatic transaction abort
  4283.  4Dh    Btrieve engine busy or resource locked by another user
  4284.  4Eh    deadlock detected
  4285.  50h    conflict
  4286.  51h    lock error
  4287.  52h    lost position
  4288.  53h    read outside transaction
  4289.  54h    record in use
  4290.  55h    file in use
  4291.  56h    file table full
  4292.  57h    handle table full
  4293.  58h    incompatible open mode
  4294.  5Ah    redirected device table full
  4295.  5Bh    server error
  4296.  5Ch    transaction table full
  4297.  5Dh    incompatible lock type
  4298.  5Eh    permission error
  4299.  5Fh    session no longer valid
  4300.  60h    communications environment error
  4301.  61h    data message too small
  4302.  62h    internal transaction error
  4303. --------I-7B---------------------------------
  4304. INT 7B - Eicon Access API (3270/5250 gateways)
  4305. SeeAlso: INT 5C"NetBIOS"
  4306. --------E-7B---------------------------------
  4307. INT 7B - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ3
  4308. Notes:    this vector is overwritten when GO32 starts but is not restored by
  4309.       early versions of the extender
  4310.     the newest versions of GO32 dynamically allocate the vectors used
  4311.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  4312. SeeAlso: INT 0B,INT 10/AH=FFh"GO32",INT 7A"GO32",INT 7C"GO32"
  4313. --------A-7B---------------------------------
  4314. INT 7B CR - AutoCAD Device Interface - PRINTER/PLOTTER - SEND PLOTTING DATA
  4315.     AX = data length (0000h-7FFFh)
  4316.     CX:BX -> data to be plotted
  4317.     DX = vertical position of line on page
  4318. Return: nothing
  4319. Notes:    This interrupt is called by AutoCAD to perform its output
  4320.     A data length of 0000h indicates that a blank line is to be output
  4321. SeeAlso: AX=8001h,AX=8002h,INT 78"AutoCAD",INT 7A/AX=0001h"AutoCAD"
  4322. --------e-7B---------------------------------
  4323. INT 7B U - MCI Express v2.11+ - DRIVER.EXE - ???
  4324. Program: MCI Express is a front end to MCI Mail; DRIVER.EXE is its
  4325.       communication driver
  4326. ----------7B---------------------------------
  4327. INT 7B - Novell XQL - XQL PRIMITIVES MANAGER API
  4328.     DS:DX -> parameter block (see #2971)
  4329. Return: parameter block updated
  4330.  
  4331. (Table 2970)
  4332. Values for Novell XQL function number:
  4333.  00h    log in
  4334.  01h    log out
  4335.  02h    "tNewFcn"
  4336.  03h    "tFreeFcn"
  4337.  04h    "tMoveFldFcn"
  4338.  05h    "tFieldFcn"
  4339.  06h    "tDescribeFcn"
  4340.  07h    "tFetchFcn"
  4341.  08h    "tComputeFcn"
  4342.  09h    "tOrderFcn"
  4343.  0Ah    "tRestrictFcn"
  4344.  0Bh    "tJoinFcn"
  4345.  0Ch    "tInsertFcn"
  4346.  0Dh    "tUpdateFcn"
  4347.  0Eh    "tUpdallFcn"
  4348.  0Fh    "tRemoveFcn"
  4349.  10h    "tRemallFcn"
  4350.  11h    "tResetFcn"
  4351.  12h    "tTransFcn"
  4352.  13h    "tStatFcn"
  4353.  14h    "tDDCreFcn"
  4354.  15h    "tStoreFcn"
  4355.  16h    "tRecallFcn"
  4356.  17h    "tStopFcn"
  4357.  18h    "tDDFileFcn"
  4358.  19h    "tDDFieldFcn"
  4359.  1Ah    "tDDIndexFcn"
  4360.  1Bh    "tDDModFcn"
  4361.  1Ch    "tDDViewFcn"
  4362.  1Dh    "tDDDrpFcn"
  4363.  1Eh    "tDDPathFcn"
  4364.  1Fh    "tDDAttrFcn"
  4365.  20h    "tDDFcn"
  4366.  21h    "tSecurFcn"
  4367.  22h    "tUserFcn"
  4368.  23h    "tAccessFcn"
  4369.  24h    "tPswdFcn"
  4370.  25h    "tCharFcn"
  4371.  26h    "tVersionFcn"
  4372.  27h    "tCnvFcn"
  4373.  28h    "tValFcn"
  4374.  29h    "tMaskFcn"
  4375. SeeAlso: #2971
  4376.  
  4377. Format of XQL parameter block:
  4378. Offset    Size    Description    (Table 2971)
  4379.  00h  4 BYTEs    signature "XQLP"
  4380.  04h    WORD    function number (see #2970)
  4381.  06h    WORD    handle
  4382.  08h    WORD    status
  4383.  0Ah    WORD    session ID
  4384.  0Ch    var    data record (varies by function)
  4385. ---function 00h---
  4386.  0Ch    DWORD    -> user name
  4387.  10h    DWORD    -> password
  4388.  14h    DWORD    -> dictionary
  4389.  18h    DWORD    -> filepath
  4390.  1Ch    DWORD    -> machine name
  4391.  20h    WORD    process ID
  4392. ---function 01h---
  4393.  no additional fields???
  4394. ---function 02h---
  4395.  0Ch    DWORD    -> filename
  4396.  10h    DWORD    -> owner name
  4397.  14h    WORD    open mode
  4398. ---function 03h---
  4399.  no additional fields???
  4400. ---function 04h---
  4401.  0Ch    WORD    "frompos"
  4402.  0Eh    WORD    "topos"
  4403. ---function 05h---
  4404.  0Ch    WORD    subfunction
  4405.  0Eh    WORD    position
  4406.  10h    WORD    count
  4407.  12h    DWORD    -> field list
  4408. ---function 06h---
  4409.  0Ch    WORD    subfunction
  4410.  0Eh    WORD    length of description
  4411.  10h    WORD    position
  4412.  12h    WORD    count
  4413.  14h    DWORD    pointer to description list
  4414. ---function 07h---
  4415.  0Ch    WORD    data length
  4416.  0Eh    WORD    "op"
  4417.  10h    DWORD    "select"
  4418.  14h    DWORD    "reject"
  4419.  18h    DWORD    pointer to data buffer
  4420. ---function 08h---
  4421.  0Ch    DWORD    -> field name
  4422.  10h    WORD    field type
  4423.  12h    WORD    field size
  4424.  14h    WORD    "flddec"
  4425.  16h    WORD    "explen"
  4426.  18h    DWORD    pointer to "expbuf"
  4427. ---function 09h---
  4428.  0Ch    WORD    count
  4429.  0Eh    DWORD    -> field list
  4430. ---function 0Ah---
  4431.  0Ch    WORD    "newexp"
  4432.  0Eh    WORD    "explen"
  4433.  10h    DWORD    -> "expbuf"
  4434. ---function 0Bh---
  4435.  0Ch    DWORD    -> filename
  4436.  10h    DWORD    -> owner name
  4437.  14h    WORD    type of join
  4438.  16h    WORD    "pCount"
  4439.  18h    DWORD    -> "pNames"
  4440.  1Ch    WORD    "sCount"
  4441.  1Eh    DWORD    -> "sNames"
  4442. ---functions 0Ch, 0Dh, 0Fh---
  4443.  0Ch    WORD    file count
  4444.  0Eh    DWORD    -> file list
  4445.  12h    DWORD    count
  4446.  16h    DWORD    -> buffer
  4447. ---function 0Eh---
  4448.  0Ch    WORD    file count
  4449.  0Eh    DWORD    -> file list
  4450.  12h    WORD    "op"
  4451.  14h    DWORD    "select"
  4452.  18h    DWORD    "reject"
  4453.  1Ch    WORD    count
  4454.  1Eh    DWORD    -> "res"
  4455.  22h    DWORD    -> "comp"
  4456. ---function 10h---
  4457.  0Ch    WORD    file count
  4458.  0Eh    DWORD    -> file list
  4459.  12h    WORD    "op"
  4460.  14h    DWORD    "select"
  4461.  18h    DWORD    "reject"
  4462. ---function 11h---
  4463.  0Ch    DWORD    machine name
  4464. ---function 12h---
  4465.  0Ch    WORD    option
  4466. ---function 13h---
  4467.  0Ch    WORD    subfunction
  4468.  0Eh    WORD    length of buffer
  4469.  10h    DWORD    -> buffer
  4470. ---function 14h---
  4471.  0Ch    WORD    subfunction
  4472.  0Eh    DWORD    -> filename
  4473.  12h    WORD    "create"
  4474.  14h    DWORD    -> pathname
  4475.  18h    DWORD    -> owner name
  4476.  1Ch    WORD    owner access restrictions
  4477.  1Eh    WORD    number of fields
  4478.  20h    DWORD    -> field list
  4479.  24h    WORD    number of keys
  4480.  28h    DWORD    -> key list
  4481.  2Ch    WORD    "buflen"
  4482.  2Eh    DWORD    -> create parameters
  4483. ---function 15h---
  4484.  0Ch    DWORD    -> "StoreName"
  4485.  10h    WORD    length of buffer
  4486.  12h    DWORD    -> buffer
  4487. ---function 16h---
  4488.  0Ch    DWORD    -> "RecallName"
  4489.  10h    WORD    owner number
  4490.  12h    DWORD    -> owner list
  4491.  16h    WORD    open mode
  4492.  18h    WORD    length of buffer
  4493.  1Ah    DWORD    -> buffer
  4494. ---function 17h---
  4495.  no additional fields???
  4496. ---function 18h---
  4497.  0Ch    WORD    "rtype"
  4498.  0Eh    WORD    count
  4499.  10h    DWORD    -> "filebuf"
  4500.  14h    WORD    length of following buffer
  4501.  16h    DWORD    -> output buffer
  4502. ---functions 19h, 1Ah---
  4503.  0Ch    WORD    "rtype"
  4504.  0Eh    WORD    count
  4505.  10h    DWORD    -> field buffer
  4506.  14h    WORD    length of following buffer
  4507.  16h    DWORD    -> output buffer
  4508. ---function 1Bh---
  4509.  0Ch    WORD    subfunction
  4510.  0Eh    DWORD    -> filename
  4511.  12h    WORD    "create"
  4512.  14h    DWORD    -> pathname
  4513.  18h    DWORD    -> owner name
  4514.  1Ch    WORD    owner access restrictions
  4515.  1Eh    WORD    field count
  4516.  20h    DWORD    -> field list
  4517.  24h    WORD    number of keys
  4518.  26h    DWORD    -> list of keys
  4519. ---function 1Ch---
  4520.  0Ch    WORD    count
  4521.  0Eh    DWORD    -> view name
  4522.  12h    WORD    length of following buffer
  4523.  14h    DWORD    -> output buffer
  4524. ---function 1Dh---
  4525.  0Ch    DWORD    -> filename
  4526.  10h    WORD    file type
  4527.  12h    WORD    "deletepath"
  4528. ---function 1Eh---
  4529.  0Ch    WORD    "dirtype"
  4530.  0Eh    DWORD    -> pathname
  4531. ---function 1Fh---
  4532.  0Ch    WORD    function
  4533.  0Eh    DWORD    -> field name
  4534.  12h    WORD    attribute
  4535.  14h    WORD    size of buffer
  4536.  16h    DWORD    -> buffer for attributes
  4537. ---function 20h---
  4538.  0Ch    DWORD    -> directory path
  4539.  10h    WORD    function
  4540. ---function 21h---
  4541.  0Ch    DWORD    -> master password
  4542.  10h    WORD    "securityflag"
  4543. ---function 22h---
  4544.  0Ch    DWORD    -> master password
  4545.  10h    WORD    function (add/modify/remove)
  4546.  12h    DWORD    -> user name
  4547.  16h    DWORD    -> password
  4548.  1Ah    WORD    global rights
  4549.  1Ch    WORD    count
  4550.  1Eh    WORD    length of following buffer
  4551.  20h    DWORD    -> "userbuf"
  4552. ---function 23h---
  4553.  0Ch    DWORD    -> master password
  4554.  10h    DWORD    -> user name
  4555.  14h    WORD    function (allow/deny/getrights)
  4556.  16h    WORD    rights
  4557.  18h    DWORD    -> filename
  4558.  1Ch    WORD    number of field names in following buffer
  4559.  1Eh    DWORD    -> field names
  4560.  22h    WORD    maximum buffer length
  4561.  24h    DWORD    -> output buffer
  4562. ---function 24h---
  4563.  0Ch    DWORD    -> user name
  4564.  10h    DWORD    -> password
  4565. ---function 25h---
  4566.  0Ch    WORD    "charFcn"
  4567.  0Eh    WORD    "charType"
  4568.  10h    WORD    "charValue"
  4569. ---function 26h---
  4570.  0Ch    DWORD    -> buffer
  4571. ---function 27h---
  4572.  0Ch    WORD    option
  4573.  0Eh    WORD    type
  4574.  10h    WORD    size
  4575.  12h    WORD    "dec"
  4576.  14h    WORD    "dsize"
  4577.  16h    DWORD    -> value
  4578.  1Ah    DWORD    -> "retval"
  4579.  1Eh    DWORD    -> mask
  4580.  22h    WORD    "justify"
  4581. ---function 28h---
  4582.  0Ch    DWORD    -> field name
  4583.  10h    WORD    length of buffer
  4584.  12h    DWORD    -> buffer for data
  4585. ---function 29h---
  4586.  0Ch    WORD    option
  4587.  0Eh    WORD    type
  4588.  10h    WORD    size
  4589.  12h    WORD    "dec"
  4590.  14h    WORD    length of mask
  4591.  16h    DWORD    -> mask
  4592. --------A-7B8001-----------------------------
  4593. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - BEGIN PLOT
  4594.     AX = 8001h
  4595.     BX = file level
  4596.         0000h binary file
  4597.         0001h CAD/camera image file
  4598.         0002h installed ADI driver
  4599.     CX = horizontal size in pixels
  4600.     DX = vertical size in pixels
  4601. Return: AX = status (0000h initialization failed, 0001h init successful)
  4602.     BX = allowed output format
  4603.         0000h monochrome
  4604.         0001h color (4 bits per pixel)
  4605. SeeAlso: AX=8002h,AX=8003h,INT 7B"AutoCAD",INT 7C"AutoShade"
  4606. --------A-7B8002-----------------------------
  4607. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - END PLOT
  4608.     AX = 8002h
  4609. SeeAlso: AX=8001h,AX=8003h
  4610. --------A-7B8003-----------------------------
  4611. INT 7B R - AutoCAD Device Interface - PRINTER/PLOTTER - ABORT PLOT
  4612.     AX = 8003h
  4613. SeeAlso: AX=8001h,AX=8002h
  4614. --------r-7C---------------------------------
  4615. INT 7C U - IBM REXX88PC command language
  4616.     ???
  4617. --------E-7C---------------------------------
  4618. INT 7C - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ4
  4619. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  4620.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  4621. Notes:    this vector is overwritten when GO32 starts but is not restored by
  4622.       early versions of the extender
  4623.     the newest versions of GO32 dynamically allocate the vectors used
  4624.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  4625. SeeAlso: INT 0C,INT 7B"GO32",INT 7D"GO32"
  4626. --------P-7C---------------------------------
  4627. INT 7C - PRINDIR v8.02+ - API
  4628.     AH = function
  4629.        00h set output to Invisible mode
  4630.        01h set output to LPT1
  4631.        02h set output to LPT2
  4632.        03h set output to LPT3
  4633.        04h set output to COM1
  4634.        05h set output to COM2
  4635.        06h set output to COM3
  4636.        07h set output to COM4
  4637.        08h set output to screen
  4638.        09h set output to file
  4639.        0Ah change file path
  4640.            ES:DI -> new path
  4641.            CX = length of path (max 41, but not range-checked)
  4642.        0Bh change file name
  4643.            ES:DI -> new filename
  4644.            CX = length of new name (max 41, but not range-checked)
  4645.        0Ch set redirected device
  4646.         (01h = LPT1 ... 03h = LPT3, 04h = COM1 ... 07h = COM4)
  4647.        0Dh force buffer dump
  4648.        0Eh set display color
  4649.            AL = new color attribute (see #0013 at INT 10/AH=08h)
  4650.        0Fh set popup hotkey
  4651.            AL = hotkey scancode
  4652.        10h toggle byte display
  4653.            AL = new state (00h off, 01h on)
  4654.        11h change buffer flush delay
  4655.            AL = timer ticks before flush
  4656. Return: AX = status
  4657.         0000h successful
  4658.         0001h invalid function or nothing in buffer to be dumped
  4659.         (documented as "nonzero = error")
  4660. Program: PRINDIR is a shareware printer-redirection program by J.M. Allen
  4661.       Creations
  4662. Notes:    the installation check consists of testing for the ASCIZ signature
  4663.       "PRINDIR N.NN" (where N.NN is the version number) two bytes beyond
  4664.       the start of the interrupt handler
  4665.     prior versions of PRINDIR used INT 7A instead of INT 7C
  4666. SeeAlso: INT 7A"PRINDIR"
  4667. Index:    hotkeys;PRINDIR
  4668. --------A-7C---------------------------------
  4669. INT 7C - AutoShade v2 - RENDERING HARDCOPY DRIVER
  4670. Note:    this is the default interrupt vector for rendering hardcopy drivers
  4671.       instead of INT 7A used by AutoCAD drivers
  4672. SeeAlso: INT 7A/AX=0001h"AutoCAD"
  4673. --------N-7C---------------------------------
  4674. INT 7C - SK-UPPS/SK-PASSPORT Data Link Interface (DLI) API
  4675. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  4676.       which provides an API on top of it Data Link Interface, allowing the
  4677.       use of any of several network transport layers; this product is
  4678.       called SK-PASSPORT in the USA.
  4679. Notes:    The installation check consists of testing for the ASCII signature
  4680.       string "UPPS_DLI" immediately preceding the interrupt handler.
  4681.     To find the service interrupt being used by the driver, an application
  4682.       should scan through the interrupt table until it finds an interrupt
  4683.       vector with the "UPPS_DLI" string.
  4684.     There may be more than one DLI loaded, each having its own service
  4685.       interrupt.
  4686. SeeAlso: AX=0000h,AX=0002h,AX=000Fh
  4687. Index:    installation check;SK-UPPS
  4688. --------N-7C0000-----------------------------
  4689. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER VERSION
  4690.     AX = 0000h
  4691. Return: AH = major DLI version
  4692.     AL = minor DLI version
  4693.     DX = OEM signature (see #2972)
  4694.     CL = DLI 2.8+ topology: 1=Ethernet, 2=FDDI, 3=Token-Ring
  4695. SeeAlso: AX=0002h,AX=000Bh,AX=000Dh,AX=000Eh
  4696.  
  4697. (Table 2972)
  4698. Values for SK-UPPS Data Link Interface OEM signature (defined by SK):
  4699.  0001h        experimental
  4700.  3343h    ('3C')    3COM
  4701.  4942h    ('IB')    IBM
  4702.  4943h    ('IC')    Intellicom
  4703.  494Eh    ('IN')    Intel
  4704.  4B4Fh    ('KO')    Kodiak
  4705.  4D41h    ('MA')    Madge
  4706.  4E45h    ('NE')    Novell
  4707.  4F43h    ('OC')    Olicom
  4708.  5349h    ('SI')    Siemens
  4709.  534Bh    ('SK')    Schneider & Koch (SysKonnect)
  4710.  5744h    ('WD')    Western Digital
  4711. --------N-7C0001-----------------------------
  4712. INT 7C - SK-UPPS Data Link Interface API - DOWN DRIVER
  4713.     AX = 0001h
  4714. Return: AX = completion code (see #2973)
  4715. Note:    the DLI will refuse to unload if there are any protocols
  4716.       (see AX=0007h) or clients (see AX=0010h) active.
  4717. Index:    uninstall;SK-UPPS Data Link Interface
  4718.  
  4719. (Table 2973)
  4720. Values for SK-UPPS completion code:
  4721.  0000h    SUCCESS
  4722.  0005h    INVALID_MULTICAST
  4723.  0006h    BUFFER_TOO_SMALL
  4724.  0007h    NO_BUFFERS_LEFT
  4725.  0008h    NO_RESOURCES_LEFT
  4726.  000Bh    ILLEGAL_PROTOCOL_ID
  4727.  000Ch    PROTOCOL_IN_USE
  4728.  000Dh    NO_MULTICAST_ADDRESS
  4729.  000Fh    PROTOCOLS_ACTIVE
  4730.  0010h    CLIENTS_ACTIVE
  4731.  001Bh    INVALID_MODE
  4732.  001Ch    MODE_NOT_SUPPORTED
  4733.  FFFFh    UNKNOWN_SERVICE
  4734. --------N-7C0002-----------------------------
  4735. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATUS
  4736.     AX = 0002h
  4737.     ES:DI -> Status Information Block (SIB) (see #2985)
  4738. Return: AX = completion code (see #2973)
  4739. Note:    GET DRIVER INFO (AX=000Eh) should be used instead.
  4740. SeeAlso: AX=0000h,AX=000Bh,AX=000Dh,AX=000Eh
  4741. --------N-7C0003-----------------------------
  4742. INT 7C - SK-UPPS Data Link Interface API - CHANGE DRIVER ADDRESS
  4743.     AX = 0003h
  4744.     ES:DI -> new node address (6 bytes)
  4745. Return: AX = completion code (see #2973)
  4746. Note:    the DLI will refuse to change the address if any protocols
  4747.       (see AX=0007h) are active
  4748. SeeAlso: AX=0001h,AX=000Eh
  4749. --------N-7C0004-----------------------------
  4750. INT 7C - SK-UPPS Data Link Interface API - REQUEST BUFFER
  4751.     AX = 0004h
  4752.     DX = protocol ID (see AX=0007h,#2976)
  4753. Return: AX = completion code (see also #2973)
  4754.         0000h successful
  4755.         ES:BX -> Memory Buffer (Mbuf) (see #2974)
  4756. Note:    if the DLI has no free Mbufs, it will set an internal flag for the
  4757.       protocol and later call the protocol's Event Upcall with
  4758.       EV_BUFFER_AVAILABLE (see #2980,#2981) as soon as an Mbuf becomes
  4759.       available.  There will only be one "buffer available" Upcall, even
  4760.       if this function has been called several times before.
  4761. SeeAlso: AX=0005h,AX=0006h,AX=0012h,AX=0013h
  4762.  
  4763. Format of SK-UPPS Memory Buffer (Mbuf):
  4764. Offset    Size    Description    (Table 2974)
  4765.  00h    DWORD    -> NEXT Mbuf (linked list)
  4766.  04h    WORD    OFFSET of actual data within DATA area
  4767.  06h  2 BYTEs    reserved (currently unused)
  4768.  08h    WORD    LENGTH of actual data found in DATA area starting at OFFSET
  4769.  0Ah  2 BYTEs    reserved (currently unused)
  4770.  0Ch    DWORD    -> DATA area (size can be obtained via AX=000Eh call)
  4771.  10h    WORD    PROTOCOL ID of protocol currently "owning" the Mbuf
  4772.  12h    BYTE    IN USE flag; nonzero if Mbuf still in use by DLI (see AX=0006h)
  4773.  13h    BYTE    RECEIVE STATUS (bit 0-7 only; see AX=0007h - Receive Upcall)
  4774. --------N-7C0005-----------------------------
  4775. INT 7C - SK-UPPS Data Link Interface API - RELEASE BUFFER
  4776.     AX = 0005h
  4777.     ES:BX -> Mbuf (see #2974)
  4778. Return: nothing
  4779. SeeAlso: AX=0004h
  4780. --------N-7C0006-----------------------------
  4781. INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME
  4782.     AX = 0006h
  4783.     ES:BX -> Mbuf (see #2974)
  4784. Return: nothing
  4785. Notes:    The DLI will send LENGTH bytes found in the Mbuf's DATA area starting
  4786.       at OFFSET. A complete and valid frame must be stored there. The DLI
  4787.       will only copy the current node address (see AX=0003h) to the
  4788.       source node field of the frame's MAC header.
  4789.     On Ethernet, the DLI will always send a minimum of 60 bytes, regardless
  4790.       of the value found in the LENGTH field.
  4791.     This function returns immediately; the DLI will call the protocol's
  4792.       Transmit Upcall (see #2975) when the frame has been sent.
  4793.     The Mbuf's IN USE field will be non-zero until the DLI calls the
  4794.       Transmit Upcall.
  4795. SeeAlso: AX=0002h,AX=0004h,AX=0013h
  4796.  
  4797. (Table 2975)
  4798. Values SK-UPPS Transmit Upcall is called with:
  4799.     ES:BX -> Mbuf (NEXT field destroyed)
  4800.     interrupts disabled
  4801. Note:    On FDDI the bytes of the source and destination node fields in the MAC
  4802.       header have been bit-swapped to physical address format.
  4803. --------N-7C0007-----------------------------
  4804. INT 7C - SK-UPPS Data Link Interface API - REGISTER PROTOCOL
  4805.     AX = 0007h
  4806.     ES:BX -> Protocol Control Block (see #2976)
  4807. Return: AX = completion code (see #2973)
  4808. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  4809.       which provides an API on top of its Data Link Interface, allowing the
  4810.       use of any of several network transport layers
  4811. SeeAlso: AX=0008h,AX=000Bh
  4812.  
  4813. Format of SK-UPPS Protocol Control Block (PCB):
  4814. Offset    Size    Description    (Table 2976)
  4815.  00h    WORD    (big-endian) protocol type
  4816.  02h    WORD    protocol mode (see #2977)
  4817.  04h    DWORD    -> Receive Upcall routine (see #2978)
  4818.  08h    DWORD    -> Transmit Upcall routine
  4819.  0Ch    DWORD    -> Event Upcall routine (see #2980)
  4820.  10h    DWORD    -> ASCIZ protocol name (zero if none)
  4821.  14h    WORD    protocol ID will be returned here (always non-zero)
  4822.  
  4823. Bitfields for SK-UPPS protocol mode:
  4824. Bit(s)    Description    (Table 2977)
  4825.  0    promiscuous mode; protocol receives all frames regardless of their
  4826.       destination (PROTOCOL TYPE must be FFFFh)
  4827.  1    if set, protocol's Event Upcall will be called on entry and exit of the
  4828.       DLI's Interrupt Service Routine (see event codes below)
  4829.  2    DLI 2.2+ hook mode; protocol receives all directed frames destined for
  4830.       this station (PROTOCOL TYPE must be FFFFh)
  4831.  3    DLI 2.3+ receive error frames (only valid in promiscuous mode (0))
  4832.  4-5    DLI 2.5+ frame type:
  4833.     00 Ethernet II; specify type code in PROTOCOL TYPE field (high-low)
  4834.     01 IEEE 802.2; specify Service Access Point (SAP) in MSB
  4835.           (offset 0) of PROCOTOL TYPE field; LSB must be zero
  4836.     10 IEEE 802.2 with SNAP header; specify type code in PROTOCOL TYPE
  4837.           field (high-low)
  4838.     11 reserved (currently unused)
  4839.  6    DLI 2.5+ if set, protocol's Event Upcall will be called with event code
  4840.       EV_BUFFER_WANTED, when DLI runs out of Mbufs
  4841.  7    DLI 2.7+ chain mode; if set, client allows the specified frame type to
  4842.       be shared with other clients
  4843.  8    DLI 2.8+ receive non-LLC frames rather than LLC frames
  4844.  9    DLI 2.8+ receive all multicast frames (see also AX=0009h)
  4845.  10-15    reserved (currently unused; must be zero)
  4846. Notes:    If PROTOCOL TYPE is FFFFh and neither the "promiscuous" nor the "hook"
  4847.       mode is set, the protocol receives all frames that did not match
  4848.       any registered frame type (demultiplexor mode).
  4849.     Protocols using "promiscuous", "hook" or "chain" mode should always
  4850.       return from the Receive Upcall with the received Mbuf in ES:BX and
  4851.       the Carry Flag set. The DLI will then pass the Mbuf to the FEED BACK
  4852.       BUFFER function (see AX=000Fh).
  4853.     Some DLIs do not support all or even any of the "promiscuous",
  4854.       "receive non-LLC" and "receive all multicasts" mode bits.
  4855.  
  4856. (Table 2978)
  4857. Values SK-UPPS Receive Upcall is called with:
  4858.  ES:BX -> Mbuf
  4859.  AX = receive status (see #2979) (also stored in Mbuf's RECEIVE STATUS field)
  4860.  interrupts disabled
  4861.  
  4862. Bitfields for SK-UPPS receive status:
  4863. Bit(s)    Description    (Table 2979)
  4864.  0-2    reserved (0), currently unused
  4865.  3    frame check sequence (FCS) error
  4866.  4    overflow (frame too long)
  4867.  5    framing error
  4868.  6    reserved (0), currently unused
  4869.  7    non-LLC frame (see 8 of PCB's protocol mode field)
  4870.  8-15    reserved (0), currently unused
  4871. Notes:    The protocol's Receive Upcall routine will be called whenever a frame
  4872.       matching the specified frame type is received. A received frame is
  4873.       passed to the protocol in the Mbuf's DATA area at OFFSET and its size
  4874.       is LENGTH bytes.
  4875.     The receive status passed to the Receive Upcall in register AL is
  4876.       always zero, except for protocols using "non-LLC" mode (8 of PCB's
  4877.       protocol mode field) or "promiscuous" mode together with "receive
  4878.       error frames" (0 & 3).
  4879.     Upcalls are FAR routines and must return with a RET FAR. If the Carry
  4880.       Flag is set on return from a Receive or Transmit Upcall, then ES:BX
  4881.       must point to an Mbuf, which the DLI will then pass to the RELEASE
  4882.       BUFFER function (see AX=0005h). See also notes for PROTOCOL MODE.
  4883.  
  4884. (Table 2980)
  4885. Values SK-UPPS Event Upcall is called with:
  4886.  AX = event code (see #2981)
  4887. Note:    All Event Upcalls may be ignored by the protocol.
  4888.  
  4889. (Table 2981)
  4890. Values for SK-UPPS Event Upcall event code:
  4891.  00h    EV_BUFFER_AVAILABLE client may now call REQUEST BUFFER (AX=0004h)
  4892.  01h    EV_ISR_START        start of Interrupt Service Routine
  4893.  02h    EV_ISR_END        end of ISR (see bit 1 in PCB's protocol mode field)
  4894.  03h    EV_BUFFER_WANTED    DLI temporarily out of Mbufs
  4895.  04h    EV_NETWORK_STATUS   DLI 2.8+ network status -- DX=status (see #2982)
  4896.  05h    EV_IO_CONTROL        DLI 2.8+ I/O control -- DX=subfunc (see AX=0016h)
  4897.  
  4898. Bitfields for EV_NETWORK_STATUS in register DX:
  4899. Bit(s)    Description    (Table 2982)
  4900.     Token-Ring        FDDI
  4901.  15    SIGNAL_LOSS        SIGNAL_LOSS
  4902.  14    HARD_ERROR        HARD_ERROR
  4903.  13    SOFT_ERROR        SOFT_ERROR
  4904.  12    TRANSMIT_BEACON        TRANSMIT_BEACON
  4905.  11    LOBE_WIRE_FAULT        PATH_TEST_FAILED
  4906.  10    AUTO_REMOVAL        SELF_TEST_REQUIRED
  4907.  9    reserved        reserved
  4908.  8    REMOVE_RECEIVED        REMOTE_DISCONNECT
  4909.  7    COUNTER_OVERFLOW    reserved
  4910.  6    SINGLE_STATION        DUPLICATE_ADDRESS
  4911.  5    RING_RECOVERY        NO_RING_OP_STATUS
  4912.  4    reserved        VERSION_MISMATCH
  4913.  3    reserved        STUCK_BYPASS
  4914.  2    reserved        FDDI_EVENT
  4915.  1    reserved        RING_OP_CHANGE
  4916.  0    reserved        reserved
  4917. Note:    EV_NETWORK_STATUS is not supported on Ethernet
  4918. --------N-7C0008-----------------------------
  4919. INT 7C - SK-UPPS Data Link Interface API - DISABLE PROTOCOL
  4920.     AX = 0008h
  4921.     BX = protocol ID (see #2976)
  4922. Return: AX = completion code (see #2973)
  4923. Note:    the DLI will handle any Mbufs given to TRANSMIT FRAME (AX=0006h) as if
  4924.       they had been given to TRANSMIT FRAME RELEASE (AX=0013h).
  4925.     all multicast addresses registered for this protocol will be disabled.
  4926.     after this function returns, the protocol's Upcall routines will no
  4927.       longer be called.
  4928. SeeAlso: AX=0007h,AX=000Bh
  4929. --------N-7C0009-----------------------------
  4930. INT 7C - SK-UPPS Data Link Interface API - REGISTER MULTICAST
  4931.     AX = 0009h
  4932.     BX = protocol ID (see #2976)
  4933.     ES:DI -> multicast address (6 bytes)
  4934. Return: AX = completion code (see #2973)
  4935. Notes:    The broadcast address is always enabled.
  4936.     Set bit 9 of PCB's protocol mode field in REGISTER PROTOCOL call
  4937.       (AX=0007h) to receive all multicast frames.
  4938. SeeAlso: AX=000Ah,AX=0014h
  4939. --------N-7C000A-----------------------------
  4940. INT 7C - SK-UPPS Data Link Interface API - DISABLE MULTICAST
  4941.     AX = 000Ah
  4942.     BX = protocol ID (see #2976)
  4943.     ES:DI -> multicast address (6 bytes)
  4944. Return: AX = completion code (see #2973)
  4945. SeeAlso: AX=0009h,AX=0014h
  4946. --------N-7C000B-----------------------------
  4947. INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL LIST
  4948.     AX = 000Bh
  4949.     ES:DI -> protocol ID buffer
  4950.     CX = number of 2-byte protocol IDs that may be stored in buffer
  4951. Return: AX = completion code (see #2973)
  4952.     CX = number of active protocols (regardless of value returned in AX)
  4953.     protocol ID buffer filled with active protocol IDs
  4954. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  4955.       which provides an API on top of its Data Link Interface, allowing the
  4956.       use of any of several network transport layers
  4957. Note:    If the buffer supplied is too small, CX still contains the total number
  4958.       of active protocols and the buffer has been filled until full.
  4959. SeeAlso: AX=000Ch,AX=0014h
  4960. --------N-7C000C-----------------------------
  4961. INT 7C - SK-UPPS Data Link Interface API - GET PROTOCOL STATUS
  4962.     AX = 000Ch
  4963.     BX = protocol ID (see #2976,AX=000Bh)
  4964.     ES:DI -> Protocol Status Block (see #2983)
  4965. Return: AX = completion code (see #2973)
  4966. SeeAlso: AX=000Bh,AX=0014h
  4967.  
  4968. Format of SK-UPPS Protocol Status Block (PSB):
  4969. Offset    Size    Description    (Table 2983)
  4970.  00h    DWORD    -> ASCIZ protocol name
  4971.  04h    WORD    protocol mode (see #2977)
  4972.  06h    WORD    protocol type (see AX=0007h)
  4973.  08h    WORD    number of registered multicasts (see AX=0009h,AX=0014h)
  4974. --------N-7C000D-----------------------------
  4975. INT 7C - SK-UPPS Data Link Interface API - GET DRIVER STATISTICS
  4976.     AX = 000Dh
  4977.     BX = flag: 0=don't clear statistics, 1=clear statistics
  4978.     ES:DI -> Statistics Data Block (see #2984)
  4979. Return: AX = completion code (see #2973)
  4980. SeeAlso: AX=0002h,AX=0015h
  4981.  
  4982. Format of SK-UPPS Statistics Data Block (SDB):
  4983. Offset    Size    Description    (Table 2984)
  4984.  00h    DWORD    node uptime in ticks (1/18.21 sec.)
  4985.  04h    DWORD    bytes received
  4986.  08h    DWORD    bytes transmitted
  4987.  0Ch    DWORD    frames received
  4988.  10h    DWORD    frames transmitted
  4989.  14h    DWORD    multicast bytes received
  4990.  18h    DWORD    multicast frames received
  4991.  1Ch    DWORD    unrecognized frames
  4992.  20h    WORD    missed frames
  4993.  22h    WORD    frame check sequence (FCS) errors
  4994.  24h    WORD    framing errors
  4995.  26h    WORD    babbling errors
  4996.  28h    WORD    late collision errors
  4997.  2Ah    WORD    loss of carrier errors
  4998.  2Ch    WORD    16 retries failed errors
  4999.  2Eh    WORD    overflow errors
  5000. Note:    fields 26h through 2Ch are always zero, except in some very old
  5001.       versions of the DLI.    Use GET MEDIA STATISTICS (AX=0015h) to get
  5002.       more detailed information.
  5003. --------N-7C000E-----------------------------
  5004. INT 7C - SK-UPPS Data Link Interface API - DLI 2.5+ - GET DRIVER INFO
  5005.     AX = 000Eh
  5006.     ES:DI -> Driver Information Block (see #2985)
  5007.     BX = offset of 1st field within DIB to be returned
  5008.     CX = number of bytes to be returned
  5009. Return: AX = completion code (see #2973)
  5010.     CX = number of bytes copied (regardless of value returned in AX)
  5011. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  5012.       which provides an API on top of its Data Link Interface, allowing the
  5013.       use of any of several network transport layers
  5014. SeeAlso: AX=0000h,AX=0002h,AX=000Bh,AX=000Dh,AX=0015h
  5015.  
  5016. Format of SK-UPPS Driver Information Block (DIB):
  5017. Offset    Size    Description    (Table 2985)
  5018.  00h  6 BYTEs    physical node address (from adapter's ROM)
  5019.  06h  6 BYTEs    current node address (see AX=0003h)
  5020.  0Ch    BYTE    adapter id (defined by OEM)
  5021.  0Dh    BYTE    IRQ line (FFh if none)
  5022.  0Eh    DWORD    -> shared memory (zero if none)
  5023.  12h    DWORD    size of shared memory (zero if none)
  5024.  16h    WORD    base I/O port (zero if none)
  5025.  18h    BYTE    DMA line (FFh if none)
  5026.  19h    BYTE    DLI 2.4+ topology (see AX=0000h)
  5027.  1Ah    WORD    size of an Mbuf's DATA area (see #2974)
  5028.  1Ch  2 BYTEs    reserved (currently unused)
  5029.  1Eh    WORD    total number of Mbufs the DLI has
  5030.  20h    WORD    maximum number of Mbufs that can be allocated via REQUEST
  5031.           BUFFER (AX=0004h) and SYNC REQUEST BUFFER (AX=0012h)
  5032.  ---- end of Status Information Block returned by GET DRIVER STATUS (AX=0002h)
  5033.  22h    DWORD    -> ASCIZ adapter name
  5034.  26h    WORD    number of I/O ports used (zero if none)
  5035.  28h    DWORD    line speed in bits/sec.
  5036. --------N-7C000F-----------------------------
  5037. INT 7C - SK-UPPS Data Link Interface API - FEED BACK BUFFER
  5038.     AX = 000Fh
  5039.     ES:BX -> Mbuf (see #2974)
  5040. Return: nothing
  5041. Notes:    A protocol may call this function instead of returning the Mbuf
  5042.       directly from the Receive Upcall if it is running in "promiscuous",
  5043.       "hook" or "chain" mode.
  5044. SeeAlso: AX=0007h
  5045. --------N-7C0010-----------------------------
  5046. INT 7C - SK-UPPS Data Link Interface API - CLIENT HOOK
  5047.     AX = 0010h
  5048. Return: nothing
  5049. Notes:    An application having no active protocols may call this function to
  5050.       prevent the DLI from unloading.
  5051. SeeAlso: AX=0001h,AX=0011h
  5052. --------N-7C0011-----------------------------
  5053. INT 7C - SK-UPPS Data Link Interface API - CLIENT UNHOOK
  5054.     AX = 0011h
  5055. Return: nothing
  5056. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  5057.       which provides an API on top of its Data Link Interface, allowing the
  5058.       use of any of several network transport layers
  5059. SeeAlso: AX=0010h
  5060. --------N-7C0012-----------------------------
  5061. INT 7C - SK-UPPS Data Link Interface API - SYNC REQUEST BUFFER
  5062.     AX = 0012h
  5063.     DX = protocol ID (see #2976)
  5064. Return: AX = completion code (see #2973)
  5065.     if AX=0000h: ES:BX -> Mbuf (see #2974)
  5066. Note:    If the protocol wants to be informed when an Mbuf becomes available,
  5067.       REQUEST BUFFER (AX=0004h) should be used instead.
  5068. SeeAlso: AX=0004h,AX=0005h,AX=0006h,AX=0013h
  5069. --------N-7C0013-----------------------------
  5070. INT 7C - SK-UPPS Data Link Interface API - TRANSMIT FRAME RELEASE
  5071.     AX = 0013h
  5072.     ES:BX -> Mbuf (see #2974)
  5073. Return: nothing
  5074. Notes:    Returns immediately; The protocol's Transmit Upcall will NOT be called.
  5075.     The Mbuf may no more be used by the protocol in any way (i.e. the
  5076.       Mbuf's IN USE field may not be polled).
  5077. SeeAlso: AX=0004h,AX=0013h
  5078. --------N-7C0014-----------------------------
  5079. INT 7C - SK-UPPS Data Link Interface API - GET MULTICAST LIST
  5080.     AX = 0014h
  5081.     BX = protocol ID (see #2976,AX=000Bh)
  5082.     ES:DI -> multicast address buffer
  5083.     CX = number of 6-byte multicast addresses that may be stored in buffer
  5084. Return: AX = completion code (see #2973)
  5085.     CX = number of registered multicast addresses for this protocol
  5086.       (regardless of value returned in AX)
  5087.     multicast address buffer filled with multicast addresses registered for
  5088.       this protocol
  5089. Note:    If the buffer supplied is too small, CX still contains the total number
  5090.       of registered multicast addresses for this protocol and the buffer
  5091.       has been completely filled
  5092. SeeAlso: AX=000Bh,AX=0009h,AX=000Ch
  5093. --------N-7C0015-----------------------------
  5094. INT 7C - SK-UPPS Data Link Interface API - DLI 2.6+ - GET MEDIA STATISTICS
  5095.     AX = 0015h
  5096.     ES:DI -> media-specific statistics buffer (see #2986,#2987,#2988)
  5097.     BX = offset of 1st field within MSS to be returned
  5098.     CX = number of bytes to be returned
  5099. Return: AX = completion code (see #2973)
  5100.     CX = number of bytes copied (regardless of value returned in AX)
  5101. Note:    not supported by all DLIs (will return AX=FFFFh if not supported).
  5102. SeeAlso: AX=0000h,AX=000Dh
  5103.  
  5104. Format of SK-UPPS media-specific statistics for Ethernet:
  5105. Offset    Size    Description    (Table 2986)
  5106.  00h    DWORD    alignment errors
  5107.  04h    DWORD    frame check sequence (FCS) errors
  5108.  08h    DWORD    single collision frames
  5109.  0Ch    DWORD    multiple collision frames
  5110.  10h    DWORD    signal quality error (SQE) test errors
  5111.  14h    DWORD    deferred transmissions
  5112.  18h    DWORD    late collisions
  5113.  1Ch    DWORD    excessive collisions
  5114.  20h    DWORD    internal MAC transmit errors
  5115.  24h    DWORD    carrier sense errors
  5116.  28h    DWORD    excessive deferrals
  5117.  2Ch    DWORD    frame too longs
  5118.  30h    DWORD    in range length errors
  5119.  34h    DWORD    out of range length fields
  5120.  38h    DWORD    internal MAC receive errors
  5121.  
  5122. Format of SK-UPPS media-specific statistics for FDDI:
  5123. Offset    Size    Description    (Table 2987)
  5124.  00h    DWORD    SMT operating version id (refer to ANSI 7.1.2.2)
  5125.  04h    DWORD    SMT CF state: 1=Isolated, 2= Wrap_S, 3=Wrap_A, 4=Wrap_B,
  5126.           5=Wrap_AB, 6=Thru (refer to ANSI SMT 9.7.4.3)
  5127.  08h    DWORD    SMT frames sent
  5128.  0Ch    DWORD    SMT frames received
  5129.  10h    DWORD    SMT ring up count
  5130.  14h  6 BYTEs    MAC upstream neighbour
  5131.  1Ah  6 BYTEs    MAC downstream neighbour
  5132.  20h    DWORD    MAC frame counter (refer to ANSI MAC 2.2.1)
  5133.  24h    DWORD    MAC error counter ( " )
  5134.  28h    DWORD    MAC lost counter ( " )
  5135.  2Ch    BYTE    port 1 link error estimate (ranges from 10**-4 to 10**-15 and
  5136.           is reported as the absolute value of the exponent)
  5137.  2Dh    BYTE    port 2 link error estimate ( " )
  5138.  2Eh  2 BYTEs    reserved (currently unused)
  5139.  30h    DWORD    attachment class: 1=single-attachment (S PORT),
  5140.           2=dual-attachment (A/B PORT pairs), 3=concentrator (M PORTs)
  5141.  34h    DWORD    attachment optical bypass present: 1=true, 2=false
  5142.  
  5143. Format of SK-UPPS media-specific statistics for Token-Ring:
  5144. Offset    Size    Description    (Table 2988)
  5145.  00h  6 BYTEs    upstream neighbour
  5146.  06h    WORD    local ring number
  5147.  08h    DWORD    ring up count
  5148.  0Ch    DWORD    signal loss errors
  5149.  10h    DWORD    lobe wire faults
  5150.  14h    DWORD    ring recovery count
  5151.  18h    DWORD    line errors
  5152.  1Ch    DWORD    burst errors
  5153.  20h    DWORD    ARI/FCI errors
  5154.  24h    DWORD    lost frame errors
  5155.  28h    DWORD    receive congestion errors
  5156.  2Ch    DWORD    frame copied errors
  5157.  30h    DWORD    token errors
  5158.  34h    DWORD    DMA bus errors
  5159.  38h    DWORD    DMA parity errors
  5160.  3Ch    DWORD    receive overflow errors
  5161. --------N-7C0016-----------------------------
  5162. INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - DRIVER I/O CONTROL
  5163.     AX = 0016h
  5164.     DX = subfunction; bits 14-15 specify direction of I/O:
  5165.         00 no data at all (ES:BX undefined)
  5166.         01 driver -> application (GET)
  5167.         10 application -> driver (SET)
  5168.         11 both directions (GET/SET)
  5169.     ES:BX -> I/O buffer (optional)
  5170.     CX = size of buffer (if ES:BX valid)
  5171. Return: AX = completion code; defined by OEM
  5172. Program: SK-UPPS is the Schneider & Koch Universal Portable Protocol Stack,
  5173.       which provides an API on top of its Data Link Interface, allowing the
  5174.       use of any of several network transport layers
  5175. Notes:    not supported by all DLIs (will return AX=FFFFh if not supported)
  5176.     subfunction codes are defined by OEMs
  5177. SeeAlso: AX=0001h
  5178. --------N-7C0017-----------------------------
  5179. INT 7C - SK-UPPS Data Link Interface API - DLI 2.8+ - INTERRUPT REQUEST
  5180.     AX = 0017h
  5181. Return: AX = completion code (see #2973)
  5182. Notes:    not supported by all DLIs (will return AX=FFFFh, if not supported).
  5183.     must be called with interrupts disabled; when the client re-enables
  5184.       interrupts, an interrupt will be generated and reported to the client
  5185.       through an Event Upcall (see AX=0007h [EV_ISR_START/EV_ISR_END])
  5186. SeeAlso: AX=0007h
  5187. --------t-7D---------------------------------
  5188. INT 7D O - [obsoleted proposal] - ALTERNATE MULTIPLEX INTERRUPT
  5189. Note:    this interface has been moved to INT 2D; there are no known
  5190.       implementations on INT 7D
  5191. SeeAlso: INT 2D,INT 2F
  5192. --------S-7D---------------------------------
  5193. INT 7D U - YTERM 1.4 - CLOCK SUPPORT
  5194. SeeAlso: INT 7E"YTERM"
  5195. --------E-7D---------------------------------
  5196. INT 7D - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ5
  5197. Notes:    this vector is overwritten when GO32 starts but is not restored by
  5198.       early versions of the extender
  5199.     the newest versions of GO32 dynamically allocate the vectors used
  5200.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  5201. SeeAlso: INT 0D,INT 7C"GO32",INT 7E"GO32"
  5202. --------U-7D---------------------------------
  5203. INT 7D - HyperPAD v2.2 - API ACCESS
  5204. Note:    this vector is hooked but immediately passed on (without checking
  5205.       whether the previous handler was 0000h:0000h).  The sole purpose of
  5206.       this vector is to provide the address of the data area described
  5207.       below (see #2989).
  5208.  
  5209. Format of HyperPAD data area:
  5210. Offset    Size    Description    (Table 2989)
  5211.  -16h    DWORD    pointer to ??? FAR function
  5212.  -12h    DWORD    pointer to callback setting function
  5213.         [C calling conventions, (*callback)(int (_loadds far *)()) ]
  5214.  -0Eh 6 BYTEs    signature "BRC001"
  5215.  -08h    DWORD    pointer to previous INT 7D handler
  5216.  -04h    DWORD    pointer to ??? data
  5217.  00h        HyperPAD INT 7D handler
  5218. ----------7D---------------------------------
  5219. INT 7D - IBM DOS 6.1 E.EXE - ???
  5220. Note:    E.EXE checks whether this interrupt is in use (not 0000h:0000h),
  5221.       and if it is used, attempts to load E55VGA.EX instead of the
  5222.       default E.EX overlay.     However, E55VGA.EX is not included in
  5223.       IBM DOS 6.1.
  5224. --------G-7D00-------------------------------
  5225. INT 7D - SCSILink - RESET SCSI BUS
  5226.     AH = 00h
  5227. Program: SCSILink is a TSR by Cross Products Ltd which allows its PC-hosted
  5228.       cross assemblers and similar products to communicate with Cross
  5229.       Products hardware debuggers
  5230. Desc:    reset all devices on the SCSI bus
  5231. Note:    the installation check is the signature "SCSILINK" immediately prior
  5232.       to the interrupt handler
  5233. Index:    installation check;SCSILink
  5234. --------G-7D01-------------------------------
  5235. INT 7D - SCSILink - CONNECT TO TARGET
  5236.     AH = 01h
  5237.     AL = target ID
  5238. Return: CF clear if successful
  5239.     CF set on error
  5240.         AL = initiator error
  5241.         AH = target error
  5242. Desc:    arbitrate the use of the bus and select the specified target device
  5243. --------G-7D02-------------------------------
  5244. INT 7D - SCSILink - SEND COMMAND
  5245.     AH = 02h
  5246.     ES:BX -> parameter block (see #2990)
  5247. Return: CF clear if successful
  5248.     CF set on error
  5249.         AL = initiator error
  5250.         AH = target error
  5251. Desc:    send the specified command block to the target device and perform any
  5252.       related I/O
  5253.  
  5254. Format of SCSILink parameter block:
  5255. Offset    Size    Description    (Table 2990)
  5256.  00h    DWORD    size of command block
  5257.  04h    DWORD    address of command block (see #2991)
  5258.  08h    DWORD    size of buffer
  5259.  0Ch    DWORD    address of buffer
  5260.  
  5261. Format of SCSILink command block:
  5262. Offset    Size    Description    (Table 2991)
  5263.  00h        info not yet available
  5264. --------G-7D03-------------------------------
  5265. INT 7D - SCSILink - SET TIMEOUT
  5266.     AH = 03h
  5267.     AL = timeout selector (see #2992)
  5268.     BX = new value in 55ms ticks
  5269. Desc:    change an internal timeout value to allow communication with very
  5270.       slow targets
  5271.  
  5272. (Table 2992)
  5273. Values for SCSILink timeout selector:
  5274.  00h    time to wait for bus (default 18)
  5275.  01h    time to wait for new phase (default 5)
  5276.  02h    maximum time to send/receive block (default 18)
  5277.  03h    time to wait for reselect (default 180)
  5278. --------G-7D04-------------------------------
  5279. INT 7D - SCSILink - GET ERROR STRING
  5280.     AH = 04h
  5281.     AL = error number
  5282. Return: ES:BX -> ASCIZ error string for error number
  5283. --------G-7D05-------------------------------
  5284. INT 7D - SCSILink - GET ADDRESS
  5285.     AH = 05h
  5286. Return: AL = DMA channel
  5287.     AH = initiator ID
  5288.     BX = card address
  5289. Desc:    determine the current hardware configuration
  5290. --------G-7D06-------------------------------
  5291. INT 7D - SCSILink - PUT DATA
  5292.     AH = 06h
  5293.     CX = number of bytes to store (0001h-0100h)
  5294.     ES:BX -> data to be saved
  5295. Return: CF clear if successful
  5296.     CF set on error
  5297.         AL = error code (01h = too much data)
  5298. Note:    the specified data is stored in SCSILink's PSP
  5299. SeeAlso: AH=07h
  5300. --------G-7D07-------------------------------
  5301. INT 7D - SCSILink - GET DATA
  5302.     AH = 07h
  5303.     CX = number of bytes to retrieve (0001h-0100h)
  5304.     ES:BX -> buffer for data
  5305. Return: CF clear if successful
  5306.     CF set on error
  5307.         AL = error code (01h = too much data)
  5308. Note:    retrieve data previously stored with AH=06h
  5309. SeeAlso: AH=06h
  5310. --------G-7D08-------------------------------
  5311. INT 7D - SCSILink - TERMINATE SESSION
  5312.     AH = 08h
  5313. Desc:    indicate to any other programs that intercept INT 7D that the program
  5314.       has finished with the link
  5315. Note:    the program should call this function even if a SCSI error caused its
  5316.       termination
  5317. --------G-7D09-------------------------------
  5318. INT 7D - SCSILink - POLL REQUEST
  5319.     AH = 09h
  5320.     AL = target ID
  5321. Return: AL = status
  5322.         FEh resident driver experienced SCSI error
  5323.         FFh resident driver handleded event
  5324. Desc:    give any drivers chained onto INT 7D a chance to handle an exception
  5325.       not specifically handled by the calling program
  5326. Notes:    this service exists so that resident disk servers, etc. can continue
  5327.       running even while debuggers and profilers are active
  5328.     the resident driver assumes that a connection has been established and
  5329.       attempts to leave the target connected
  5330. --------*-7E---------------------------------
  5331. INT 7E - RESERVED FOR DIP, Ltd. ROM LIBRARY
  5332. --------S-7E---------------------------------
  5333. INT 7E U - YTERM 1.4 - ???
  5334. SeeAlso: INT 7D"YTERM",INT 7F"YTERM"
  5335. --------E-7E---------------------------------
  5336. INT 7E - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ6
  5337. Program: GO32.EXE is a DOS extender included as part of the 80386 port of the
  5338.       GNU C/C++ compiler by DJ Delorie and distributed as DJGPP
  5339. Notes:    this vector is overwritten when GO32 starts but is not restored by
  5340.       early versions of the extender
  5341.     the newest versions of GO32 dynamically allocate the vectors used
  5342.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  5343. SeeAlso: INT 0E,INT 7D"GO32",INT 7F"GO32"
  5344. --------s-7E00-------------------------------
  5345. INT 7E - MaxSBOS v0.21 - GET ???
  5346.     AH = 00h
  5347. Return: DX:AX -> ???
  5348. SeeAlso: AH=01h,AH=02h,AH=03h
  5349. --------s-7E00F6-----------------------------
  5350. INT 7E - SBOS v3.82 - SET ???
  5351.     AX = 00F6h
  5352.     BL = ??? (max. 20h, value will be set to 20h if BL greater)
  5353. Return: AX=00F9h,AX=00FEh
  5354. --------s-7E00F7-----------------------------
  5355. INT 7E - SBOS v3.82 - GET ???
  5356.     AX = 00F7h
  5357. Return:    AX = status
  5358.         0000h failed
  5359.         0001h successful
  5360.         BX = ??? (if nonzero, ??? is hooked) (see AX=00FFh)
  5361.         CH = ???
  5362.         CL = ???
  5363. SeeAlso: AX=00F6h,AX=00FDh,AX=00FFh
  5364. --------s-7E00F9-----------------------------
  5365. INT 7E - SBOS v3.82 - SET ???
  5366.     AX = 00F9h
  5367.     BX = ???
  5368. SeeAlso: AX=00F6h,AX=00FBh,AX=00FDh
  5369. --------s-7E00FB-----------------------------
  5370. INT 7E - SBOS v3.82 - SET ???
  5371.     AX = 00FBh
  5372.     BL = ???
  5373. SeeAlso: AX=00F6h,AX=00FDh,AX=00FFh
  5374. --------s-7E00FD-----------------------------
  5375. INT 7E - SBOS v3.82 - SET ???
  5376.     AX = 00FDh
  5377.     BL = ??? (max. 20h, value will be set to 20h if BL greater)
  5378. SeeAlso: AX=00F9h,AX=00FEh
  5379. --------s-7E00FE-----------------------------
  5380. INT 7E - SBOS v3.82 - UNINSTALL
  5381.     AX = 00FEh
  5382. Return: AX = status
  5383.         0000h successful
  5384.         00FCh unable to unhook INT 21
  5385.         00FDh unable to unhook INT 09
  5386.         00FEh unable to release memory
  5387. Program: SBOS is a SoundBlaster emulator for the Gravis UltraSound
  5388. Range:    SBOS may use INT 78-INT 7F
  5389. Notes:    the installation check for SBOS is to test for the ASCII signature
  5390.       "SBOS" at offset 0Ah in the interrupt handler's segment (similar
  5391.       to one of the possible EMS installation checks)
  5392.     this function may not be called if any SBOS vectors have been hooked
  5393. SeeAlso: INT 21/AX=FD12h,INT 78"UltraMID"
  5394. --------s-7E00FF-----------------------------
  5395. INT 7E - SBOS v3.82 - SET INTERRUPT FOR ???
  5396.     AX = 00FFh
  5397.     BL = new interrupt vector to hook
  5398. Return: BX = 03CDh if supported
  5399. Desc:    unhooks the current interrupt handler for ???, and reconnects it to the
  5400.       specified new interrupt number
  5401. SeeAlso: AX=00F7h,AX=00F9h,AX=00FEh
  5402. --------s-7E01-------------------------------
  5403. INT 7E - MaxSBOS v0.21 - ???
  5404.     AH = 01h
  5405.     ???
  5406. Return: ???
  5407. Program: MaxSBOS is a SoundBlaster FM synthesis emulator for the Gravis
  5408.       UltraSound MAX
  5409. Range:    INT 78-INT 7F, selected by commandline parameter
  5410. Note:    the installation check is the same as for 'regular' SBOS (see AX=00FEh)
  5411.       although the API in v0.21 does not provide the functions present in
  5412.       the older SBOS
  5413. SeeAlso: AX=00FEh,AH=02h,AH=03h
  5414. --------s-7E02-------------------------------
  5415. INT 7E - MaxSBOS v0.21 - ???
  5416.     AH = 02h
  5417. Return: AX = FFFFh
  5418. SeeAlso: AX=00FEh,AH=01h,AH=03h
  5419. --------s-7E03-------------------------------
  5420. INT 7E - MaxSBOS v0.21 - NOP
  5421.     AH = 03h
  5422. Return: nothing
  5423. SeeAlso: AX=00FEh,AH=01h,AH=02h
  5424. --------m-7E5857BL57-------------------------
  5425. INT 7E - XLOAD - INSTALLATION CHECK
  5426.     AX = 5857h
  5427.     BL = 57h
  5428. Return: AX = 0000h if installed
  5429. Program: XLOAD is the LOADHIGH-equivalent from Helix Software's Netroom
  5430. SeeAlso: AX=5857h/BL=5Ah,AX=5857h/BL=5Bh
  5431. --------m-7E5857BL5A-------------------------
  5432. INT 7E - XLOAD - GET ???
  5433.     AX = 5857h
  5434.     BL = 5Ah
  5435. Return: AX = 0000h
  5436.     CX = ???
  5437.     DS:SI -> ???
  5438. SeeAlso: AX=5857h/BL=57h,AX=5857h/BL=5Bh
  5439. --------m-7E5857BL5B-------------------------
  5440. INT 7E - XLOAD - GET XLOAD MEMORY SIZE
  5441.     AX = 5857h
  5442.     BL = 5Bh
  5443. Return: AX = 0000h
  5444.     CX = segment of XLOAD TSR
  5445.     DX = size of memory block in which XLOAD TSR is located
  5446. SeeAlso: AX=5857h/BL=57h,AX=5857h/BL=5Ah
  5447. --------V-7F---------------------------------
  5448. INT 7F - Halo88 - API
  5449.     BX = function number (see #2993)
  5450.     additional parameters on stack
  5451. Return: ???
  5452. Program: Halo88 is a suite of graphics routines
  5453. Note:    according to Stuart Kemp, the code appears to make no provisions for
  5454.        chaining
  5455.  
  5456. (Table 2993)
  5457. Values for Halo88 API function:
  5458.  64h    arc
  5459.  65h    bar
  5460.  66h    box
  5461.  67h    circle
  5462.  68h    clr
  5463.  69h    default hatch style
  5464.  6Ah    default line style
  5465.  6Bh    delhcur
  5466.  6Ch    delln / deltcur
  5467.  6Dh    ellipse
  5468.  6Eh    fill
  5469.  6Fh    flood
  5470.  70h    flood2
  5471.  71h    init graphics
  5472.  72h    init hcur
  5473.  73h    init marker
  5474.  74h    init tcur
  5475.  75h    inqarc
  5476.  76h    inqbknd
  5477.  77h    inqclr
  5478.  78h    inqerr
  5479.  79h    inqgcur
  5480.  7Ah    inqhcur
  5481.  7Bh    inqmarker
  5482.  7Dh    inqtcur
  5483.  7Eh    inqtext
  5484.  7Fh    lnabs
  5485.  80h    lnrel
  5486.  81h    markerabs
  5487.  82h    markerrel
  5488.  83h    moveabs
  5489.  84h    movehcurabs
  5490.  85h    movehcurrel
  5491.  86h    moverel
  5492.  87h    movetcurabs
  5493.  88h    movetcurrel
  5494.  89h    movefrom
  5495.  8Ah    moveto
  5496.  8Bh    pie
  5497.  8Ch    polylnabs
  5498.  8Dh    polylnrel
  5499.  8Eh    ptabs
  5500.  8Fh    ptrel
  5501.  91h    setasp
  5502.  92h    set color
  5503.  93h    set font
  5504.  94h    set hatch    style
  5505.  95h    set line style
  5506.  97h    settext
  5507.  98h    set text color
  5508.  99h    btext
  5509.  9Ah    setseg
  5510.  9Bh    display
  5511.  9Ch    setscreen
  5512.  9Eh    close graphics
  5513.  9Fh    ftinit
  5514.  A0h    ftlocate
  5515.  A1h    ftext
  5516.  A5h    set viewport
  5517.  A6h    set window
  5518.  A7h    set world
  5519.  AAh    ftcolor
  5520.  ACh    initlp
  5521.  ADh    inqasp
  5522.  AEh    inqdev
  5523.  AFh    inqdisplay
  5524.  B0h    inqft
  5525.  B1h    inqftcolor
  5526.  B2h    inqinterlace
  5527.  B3h    inqlpa
  5528.  B4h    inqlpg
  5529.  B5h    inqmode
  5530.  B6h    inqscreen
  5531.  B7h    inqversion
  5532.  B8h    roam
  5533.  B9h    scroll
  5534.  BAh    setieee
  5535.  BBh    set interlace
  5536.  BCh    shift
  5537.  BDh    start graphics
  5538.  BEh    vpan
  5539.  CBh    gwrite
  5540.  CCh    gread
  5541.  CDh    setxor
  5542.  CEh    rbox
  5543.  CFh    rcir
  5544.  D0h    rlnabs
  5545.  D1h    rlnrel
  5546.  D2h    delbox
  5547.  D3h    delcir
  5548.  D5h    setseg2
  5549.  DCh    worldoff
  5550.  DDh    mapwtod
  5551.  DEh    mapdtow
  5552.  DFh    mapwton
  5553.  E0h    mapntow
  5554.  E1h    mapdton
  5555.  E2h    mapntod
  5556.  E3h    inqworld
  5557.  E4h    inqviewport
  5558.  E5h    set line width
  5559.  E6h    lnjoint
  5560.  E7h    set locator
  5561.  E8h    read locator
  5562.  E9h    setdev
  5563.  EBh    setstext
  5564.  ECh    setstclr
  5565.  EDh    setstang
  5566.  EEh    stext
  5567.  EFh    inqstext
  5568.  F0h    setdegree
  5569.  F1h    inqstsize
  5570.  F2h    polyfabs
  5571.  F3h    polyfrel
  5572.  F4h    inqdrange
  5573.  F5h    inqstang
  5574.  F6h    orglocator
  5575.  F7h    inqlocator
  5576.  F8h    inqarea
  5577.  F9h    setipal
  5578.  FAh    setborder
  5579.  FBh    inqcrange
  5580.  FEh    setclip
  5581.  FFh    fcir
  5582. 100h    setcrange
  5583. 101h    setdrange
  5584. 102h    setlattr
  5585. 103h    polycabs
  5586. 104h    polycrel
  5587. 108h    memcom
  5588. 109h    memexp
  5589. 10Ah    memmov
  5590. 10Eh    movefx
  5591. 10Fh    movetx
  5592. 110h    inqrgb
  5593. 111h    save image
  5594. 112h    restore image
  5595. 113h    setapal
  5596. 114h    setxpal
  5597. 118h    inqtsize
  5598. 12Eh    gprint
  5599. 130h    setprn
  5600. 131h    setpattr
  5601. 133h    setbattr
  5602. 135h    pexpand
  5603. 136h    ptnorm
  5604. 137h    pfnorm
  5605. 13Bh    inqprn
  5606. 13Ch    lopen
  5607. 13Dh    lclose
  5608. 13Eh    lappend
  5609. 13Fh    lrecord
  5610. 140h    lswitch
  5611. 142h    inqfun
  5612. 15Dh    lsetup
  5613. 15Eh    lrest
  5614. 15Fh    lsave
  5615. --------N-7F---------------------------------
  5616. INT 7F - CONVERGENT TECHNOLOGIES ClusterShare CTOS ACCESS VECTOR
  5617.     AL = request ID
  5618.         01h "Request"/"RequestDirect"
  5619.         ES:BX -> pRq
  5620.         DX ignored
  5621.         04h "Wait"
  5622.         ES:BX -> ppMsgRet
  5623.         DX = exchange
  5624.         05h "AllocExch"
  5625.         ES:BX -> pExchRet
  5626.         06h "DeAllocExch"
  5627.         DX = exchange
  5628.         07h "Check"
  5629.         ES:BX -> ppMsgRet
  5630.         DX = exchange
  5631.     CX = 4354h ('CT')
  5632. Return: AX = status
  5633.         0000h successful
  5634. --------S-7F---------------------------------
  5635. INT 7F - Telebit ACS SERIAL I/O
  5636.     ES:SI-> parameter block (see #2994)
  5637. Return: CF set on error
  5638.     CF clear on success
  5639. Notes:    the signature "PDGATEWRKSTNIF" appears just prior to the interrupt
  5640.       handler; this serves as the installation check
  5641. Index:    installation check;Telebit ACS Serial I/O
  5642.  
  5643. Format of Telebit ACS parameter block:
  5644. Offset    Size    Description    (Table 2994)
  5645.  00h    BYTE    command (see #2995)
  5646.  01h    BYTE    gateway number
  5647.  02h    BYTE    reserved
  5648.  03h    BYTE    port
  5649.  04h 17 BYTEs    auxiliary buffer
  5650.  15h    BYTE    session
  5651.  16h    WORD    count of bytes passed to API
  5652.  18h    DWORD    buffer pointer passed to/from API
  5653.  1Ch    WORD    count of bytes passed from API
  5654.  1Eh    BYTE    return code (see #2996)
  5655.  
  5656. (Table 2995)
  5657. Values for Telebit ACS command:
  5658.  3Ch    status
  5659.  3Dh    connect
  5660.  3Eh    disconnect
  5661.  3Fh    read
  5662.  40h    data/command write
  5663.  41h    clear receive buffer
  5664.  42h    get configuration
  5665.  43h    get receiver status
  5666.  44h    raw write
  5667.  45h    search servers
  5668.  46h    set transmit buffer size
  5669.  
  5670. (Table 2996)
  5671. Values for Telebit ACS return code:
  5672.  00h    success
  5673.  01h    invalid session
  5674.  05h    servername invalid
  5675.  06h    NetWare fileserver bindery is locked
  5676.  07h    communication server not active
  5677.  08h    general failure in NetWare fileserver
  5678.  09h    not logged into a fileserver
  5679.  10h    connection table full
  5680.  11h    no response from communication server
  5681.  12h    connection attempt terminated abnormally
  5682.  13h    connection refused - no sessions available
  5683.  14h    gateway number/port already in use
  5684.  15h    invalid connection response
  5685.  16h    port invalid
  5686.  17h    incorrect version in server response
  5687.  18h    gateway number/port combination not configured
  5688.  19h    initialization has not been completed
  5689.  20h    no more sockets are available
  5690.  21h    no active poolname
  5691.  23h    FATAL internal interface error
  5692.  24h    registration of host workstation failed - name is already in use
  5693.  25h    registration of host workstation failed - workstation name table full
  5694.  26h    registration of host workstation failed - only one session may be
  5695.       registered for dial-in
  5696.  FFh    Telebit ACS API is busy - retry later
  5697. --------N-7F---------------------------------
  5698. INT 7F - Non-dedicated NetWare 2.x File Server - ENTER CONSOLE MODE
  5699. Notes:    the installation check consists of checking for the signature "Lynn"
  5700.       in the four bytes preceding the interrupt handler; if present, the
  5701.       current program is running as a DOS task on a non-dedicated NetWare
  5702.       2.x file server.
  5703.     Before placing the server into "console" mode, it is recommended that
  5704.       NetWare broadcast messages be disabled with INT 21/AH=DEh/DL=00h.
  5705. SeeAlso: INT 21/AH=DEh/DL=04h
  5706. Index:    installation check;non-dedicated NetWare server
  5707. --------S-7F---------------------------------
  5708. INT 7F U - YTERM - ???
  5709. SeeAlso: INT 7E"YTERM"
  5710. --------E-7F---------------------------------
  5711. INT 7F - DJGPP GO32.EXE DOS EXTENDER - RELOCATED IRQ7
  5712. Notes:    this vector is overwritten when GO32 starts but is not restored by
  5713.       early versions of the DOS extender
  5714.     the newest versions of GO32 dynamically allocate the vectors used
  5715.       for the relocated IRQs, much as DESQview does (see INT 50"DESQview")
  5716. SeeAlso: INT 0F,INT 7E"GO32"
  5717. ----------7F---------------------------------
  5718. INT 7F - Canon IXHND2 Scanner Interface
  5719. --------U-7F---------------------------------
  5720. INT 7F - SBS WinRun 1.00 - TRANSMITTER ENTRY POINT
  5721.     DS:SI -> WinRun control block (WCB) (see #2997)
  5722. Return: WinRun receiver status returned in WCB
  5723. Program: WinRun is a DOS/Windows utility written by Sven B. Schreiber to start
  5724.       Windows applications from a virtual DOS machine under Windows
  5725. Note:    The WinRun transmitter (WINRUN-T.COM) and receiver (WINRUN-R.EXE) need
  5726.       to be up and running
  5727.  
  5728. Format of the WinRun control block (WCB):
  5729. Offset    Size    Description    (Table 2997)
  5730.  00h    DWORD    pointer to ASCIZ command string
  5731.  04h    WORD    (ret) WinRun receiver status
  5732.         0000h-001Fh WinExec() error
  5733.         0020h-FFFEh WinExec() instance handle
  5734.         FFFFh        Windows not running or WinRun receiver not
  5735.                   installed
  5736. --------N-7F---------------------------------
  5737. INT 7F - Alloy 386/MultiWare (MW386), Novell-Type Network Executive (NTNX)
  5738. Notes:    the words at C800h:0000h and C800h:0002h will both be 584Eh if the
  5739.       MW386 multitasking system is present (i.e. signature "NXNX")
  5740.     NTNX allows its API to be placed on a different interrupt than 7Fh at
  5741.       load time.  To determine the actual vector used, open the device
  5742.       "SPOOLER" with INT 21/AX=3D02h, place it in RAW mode with
  5743.       INT 21/AX=4400h and INT 21/AX=4401h, then read one byte which will
  5744.       be the actual interrupt number being used; the other interrupts may
  5745.       be found with INT 7F/AH=09h/CL=03h
  5746. --------N-7F---------------------------------
  5747. INT 7F - Alloy NetWare Support Kit (ANSK) v2.2+ - INSTALLATION CHECK
  5748. Note:    a program may determine that it is running on an ANSK Slave by checking
  5749.       the five bytes at F000h:0000h for the ASCIZ signature "ANSK"; this
  5750.       address is RAM, and should not be written.  However, the above check
  5751.       will not work on Slaves with <1MB RAM or those using the SLIM.SYS
  5752.       device driver
  5753. --------N-7F00-------------------------------
  5754. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK AND WAIT
  5755.     AH = 00h
  5756.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  5757. Return: AL = status (see #2998)
  5758.     AH = semaphore owner if status=02h
  5759. SeeAlso: AH=01h,AH=02h,AH=41h,INT 67/AH=00h
  5760.  
  5761. (Table 2998)
  5762. Values for Alloy function status:
  5763.  00h    successful
  5764.  01h    invalid function
  5765.  02h    semaphore already locked
  5766.  03h    unable to lock/unlock semaphore
  5767.  04h    semaphore space exhausted
  5768.  05h    host/target PC did not respond (NTNX)
  5769. --------T-7F00-------------------------------
  5770. INT 7F - MultiLink Advanced v1.0+ - ENQUEUE SYSTEM RESOURCE
  5771.     AH = 00h
  5772.     BX = resource identifier
  5773.     AL = wait flag
  5774. Return: AL = status
  5775.         00h successful
  5776.         01h resource not available
  5777.         02h user error
  5778. Notes:    the installation check consists of ensuring that the interrupt vector
  5779.       is not pointing at segment 0000h, then checking whether the byte
  5780.       at offset 0000h in the interrupt handler's segment is E9h
  5781.     function will not return until the resource is available if AL is
  5782.       nonzero on entry
  5783.     a maximum of 100 resources may be enqueued at once
  5784. SeeAlso: AH=01h"MultiLink"
  5785. --------N-7F00-------------------------------
  5786. INT 7F - G8BPQ v4.07+ - GET NODE/SWITCH VERSION AND DESCRIPTION
  5787.     AH = 00h
  5788.     ES:SI -> buffer for "USERS" text string
  5789. Return: AX = 4250h ('BP') if installed
  5790.     BX = 5120h ('Q ') if installed
  5791.     DX = version number (DH = major, DL = minor)
  5792.     CX = length of returned string
  5793. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  5794.       John Wiseman which allows a PC to act as a node in an AX.25 network
  5795. SeeAlso: AH=01h"G8BPQ",AH=09h"G8BPQ"
  5796. --------N-7F01-------------------------------
  5797. INT 7F - Alloy NTNX, MW386 - SEMAPHORE LOCK
  5798.     AH = 01h
  5799.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  5800. Return: AL = status (see #2998)
  5801.     AH = semaphore owner if status=02h
  5802. SeeAlso: AH=00h,AH=02h,AH=41h
  5803. --------T-7F01-------------------------------
  5804. INT 7F - MultiLink Advanced v1.0+ - DEQUEUE SYSTEM RESOURCE
  5805.     AH = 01h
  5806.     BX = resource identifier
  5807. Return: AL = status
  5808.         00h successful
  5809.         02h user error
  5810. Note:    the indicated resource may be dequeued even if it was enqueued by
  5811.       another task
  5812. SeeAlso: AH=00h"MultiLink",AH=02h"MultiLink"
  5813. --------V-7F01-------------------------------
  5814. INT 7F - TIGA Communications Driver v2.05 - GET ENTRY POINTS
  5815.     AH = 01h
  5816. Return: BX = 1234h if installed
  5817.         DX:AX -> array of FAR entry points
  5818.         CH = driver major version
  5819.         CL = driver minor version
  5820. Note:    TIGACD 2.05 returns CF set on unrecognized functions in AX
  5821. SeeAlso: AX=1234h,AX=4321h
  5822. --------N-7F01-------------------------------
  5823. INT 7F - G8BPQ v4.00+ - HOST MODE - SET APPLICATION FLAGS AND MASK
  5824.     AH = 01h
  5825.     AL = stream number (01h-40h)
  5826.     CL = new application flags
  5827.         bit 7: monitored frames available via AH=0Bh"G8BPQ"
  5828.     DL = new application mask
  5829. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  5830.       John Wiseman which allows a PC to act as a node in an AX.25 network
  5831. Range:    INT 00h to INT FFh, set in configuration file BPQCFG.TXT for v4.03+
  5832.       (earlier versions were hard-wired for INT 7F)
  5833. SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=0Bh"G8BPQ"
  5834. --------I-7F0104BX0000-----------------------
  5835. INT 7F - HLLAPI (IBM 3270 High-Level Language API)/LLAPI (Rabbit Low Level API)
  5836.     AX = 0104h (HLLAPI gate ID)
  5837.     BX = 0000h
  5838.     DS:SI -> parameter control block (see #2999)
  5839. Return: parameter control block updated
  5840. Note:    the installation check for the Novell HLLAPI TSR is the signature
  5841.       string "CXI" (for the company Novell bought) immediately prior to
  5842.       the interrupt handler
  5843. SeeAlso: AX=0105h,AX=ABCDh
  5844.  
  5845. Format of HLLAPI parameter control block:
  5846. Offset    Size    Description    (Table 2999)
  5847.  00h  3 BYTEs    signature = 'PCB'
  5848.  03h    BYTE    function number (see #3000,#3001)
  5849.  04h    WORD    segment of control string
  5850.  06h    WORD    offset of control string
  5851.  08h    WORD    length of control string, unless explicit end-of-str char set
  5852.  0Ah    BYTE    unused (IBM)
  5853.         ControlString[0] (Rabbit)
  5854.  0Bh    WORD    return code (see #3003)
  5855.  0Dh    WORD    maximum length of control string (IBM)
  5856.         unused (Rabbit)
  5857.  
  5858. (Table 3000)
  5859. Values for HLLAPI function number:
  5860.  00h    OEM function (Query system for Attachmate implementation)
  5861.  01h    Connect presentation space
  5862.  02h    Disconnect presentation space
  5863.  03h    Send string of keystrokes as if typed from keyboard
  5864.  04h    Wait ~60s, returns status of presentation space
  5865.  05h    Copy current presentation space into a user-defined buffer
  5866.  06h    Search presentation space for first occurrence of a specified string
  5867.  07h    Query cursor location in current presentation space
  5868.  08h    Copy part or all of current presentation space into user buffer
  5869.  09h    Set session parameters; parameters vary by vendor (see #3002)
  5870.  0Ah    Get info on sessions currently connected
  5871.  0Bh    Lock current presentation space
  5872.  0Ch    Unlock previously locked presentation space
  5873.  0Dh    Return copy of operator info area (OIA) of current presentation space
  5874.  0Eh    get attribute byte for given position in the current presentation space
  5875.  0Fh    copy string of characters to the current presentation space
  5876.  10h    workstation control functions
  5877.  11h    storage manager functions, intended primarily for BASIC applications
  5878.     (not implemented by Rabbit)
  5879.  12h    set delay period in half-second intervals
  5880.  14h    get info on level of workstation support used
  5881.  15h    reset session parameters to default values
  5882.  16h    get detailed info on the current session
  5883.  17h    start host notification to application on presentation sp or OIA update
  5884.  18h    check host update when host notification enabled
  5885.  19h    stop host notification
  5886.  1Eh    search field within current presentation space for string
  5887.  1Fh    get first positionof a selected field in the current presentation space
  5888.  20h    get length of specified field
  5889.  21h    copy string into a specified field
  5890.  22h    copy specified field into a user-defined buffer
  5891.  23h    create alternate presentation space (IBM only), don't use with BASIC
  5892.  24h    switch to alternate presentation space (IBM only), not with BASIC
  5893.  25h    display cursor in specified area (IBM only), don't use with BASIC
  5894.  26h    display alternate presentation space (IBM only), don't use with BASIC
  5895.  27h    delete alternate presentation space (IBM only), don't use with BASIC
  5896.  28h    set cursor
  5897.  29h    start Close Intercept
  5898.  2Ah    query Close Intercept
  5899.  2Bh    stop Close Intercept
  5900.  32h    start intercepting keystrokes to allow filtering
  5901.  33h    get keystrokes after turning on interception
  5902.  34h    notify operator when keystroke rejected by filter subroutine
  5903.  35h    stop intercepting keystrokes
  5904.  5Ah    send file
  5905.  5Bh    receive file
  5906.  5Ch    run a program (not implemented by Rabbit)
  5907.  5Dh    execute DOS command (not implemented by Rabbit)
  5908.  63h    change presentation space position to PC display row/col or vice versa
  5909.  65h    connect to Window Services
  5910.  66h    disconnect from Window Services
  5911.  67h    set/query window coordinates
  5912.  68h    set/query window status
  5913.  69h    change presentation space name
  5914.  78h    connect Structured Fields
  5915.  79h    disconnect Structured Fields
  5916.  7Ah    query size of communications buffer
  5917.  7Bh    allocate communications buffer
  5918.  7Ch    free communications buffer
  5919.  7Dh    get request completion state
  5920.  7Eh    read Structured Fields
  5921.  7Fh    write Structured Fields
  5922.  FFh    Get info on DCA implementation
  5923.  
  5924. (Table 3001)
  5925. Values for LLAPI function number:
  5926.  80h    initialize LLAPI (internal call)
  5927.  83h    set Session ID (one-character ID)
  5928.  84h    read Session ID (one-character ID)
  5929.  85h    lock 327x keyboard
  5930.  86h    unlock 327x keyboard
  5931.  87h    wait for Clear to Send
  5932.  88h    type ASCII character
  5933.  89h    type 327x key
  5934.  8Ah    read keyboard lock state
  5935.  8Fh    force screen update
  5936.  90h    view session
  5937.  91h    relinquish (suspend foreground until background becomes idle)
  5938.  92h    poke screen character
  5939.  93h    poke translated character
  5940.  94h    peek screen character
  5941.  95h    peek translated character
  5942.  96h    set cursor position
  5943.  97h    send scan code (Rabbit only)
  5944.  98h    synchronize (returns after keystroke queue empty)
  5945.  99h    type PC key (Rabbit only)
  5946.  
  5947. (Table 3002)
  5948. Values for HLLAPI Function 09h Session Parameters:
  5949.  ASCII        ??? (Rabbit only)
  5950.  ATTRIB        return attributes in hex
  5951.  NOATTRIB    return attributes as blanks
  5952.  CONPHYS    make physical connection
  5953.  CONLOG        only make logical connection
  5954.  EAB        copy extended attribute bytes along with data
  5955.  NOEAB        copy data only
  5956.  ESC=n        set escape character to "n" (default '@')
  5957.  EOT=n        set end of string character (default 00h)
  5958.  FPAUSE        full-duration pause
  5959.  FTNOWAIT    return immediately from functions 5Ah and 5Bh (Rabbit only)
  5960.  FTWAIT        wait for file transfer to complete (Rabbit only)
  5961.  IPAUSE        interruptable pause
  5962.  RABESC        ??? (Rabbit only)
  5963.  NORABESC    ??? (Rabbit only)
  5964.  SCANCODE    ??? (Rabbit only)
  5965.  STRLEN        use explicit string lengths
  5966.  STREOT        use terminated strings
  5967.  SRCHALL    search entire presentation space
  5968.  SRCHFROM    search from specified offset
  5969.  SRCHFRWD    search forward from position 1
  5970.  SRCHBKWD    search backward from last position in presentation space
  5971.  TIMEOUT=n    ??? (Rabbit only)
  5972.  TWAIT        wait specified time for keyboard ready
  5973.  LWAIT        wait until keyboard ready
  5974.  NWAIT        no wait
  5975.  TRON        enable tracing
  5976.  TROFF        disable tracing
  5977.  AUTORESET    send reset before sending keys with function 03h
  5978.  NORESET    don't send reset
  5979.  QUIET        don't display messages sent with INT 21/AH=09h
  5980.  NOQUIET    allow messages to be displayed
  5981.  TIMEOUT=n    set timeout in 30-second intervals, 0 = wait until ^Break
  5982.  XLATE        translate extended attribute bytes
  5983.  NOXLATE    don't translate
  5984.  NEWRET        use HLLAPI v3.0 return code conventions
  5985.  OLDRET        use HLLAPI v2.0 return code conventions
  5986.  
  5987. (Table 3003)
  5988. Values for Windows HLLAPI return code:
  5989.  00h    successful
  5990.  01h    Presentation Space not connected/requested size unavailable
  5991.  02h    invalid function or parameter error/invalid block ID
  5992.  03h    file transfer complete
  5993.  04h    file transfer complete (segmented)/Presentation Space busy
  5994.  05h    inhibited or keyboard locked
  5995.  06h    data truncated
  5996.  07h    invalid Presentation Space position
  5997.  08h    operation not available
  5998.  09h    system error
  5999.  0Ah    blocking error
  6000.  0Bh    resource not available
  6001.  0Ch    session stopped
  6002.  14h    undefined key combination
  6003.  15h    OIA updated
  6004.  16h    Presentation Space updated
  6005.  17h    both Presentation Space and OIA updated
  6006.  18h    no such field
  6007.  19h    no keystrokes available
  6008.  1Ah    Presentation Space or Operator Information Area changed
  6009.  1Bh    file transfer aborted
  6010.  1Ch    zero-length field
  6011.  1Eh    cursor type invalid
  6012.  1Fh    keystroke overflow
  6013.  20h    another application is already connected
  6014.  22h    message sent to host cancelled
  6015.  23h    transmission from host cancelled
  6016.  24h    lost contact with host
  6017.  25h    function successful
  6018.  26h    function incomplete
  6019.  27h    a DDM session is already connected
  6020.  28h    disconnected, but asynchronous requests still pending
  6021.  29h    buffer already in use
  6022.  2Ah    no matching request found
  6023. 12Dh    invalid function number
  6024. 12Eh    file not found
  6025. 131h    access denied
  6026. 134h    out of memory
  6027. 136h    environment invalid
  6028. 137h    format invalid
  6029. 270Eh (9998) invalid Presentation Space ID
  6030. 270Fh (9999) invalid row or column code
  6031. ---Windows HLLAPI extensions---
  6032. F000h    asynchronous call already in progress
  6033. F001h    invalid asynchronous task ID
  6034. F002h    blocking call cancelled
  6035. F003h    underlying subsystem not started
  6036. F004h    unsupported application version
  6037. --------V-7F0105-----------------------------
  6038. INT 7F - IBM 8514/A Adapter Interface (HDILOAD.EXE)
  6039.     AX = 0105h
  6040. Return: CF set on error
  6041.     CF clear if successful
  6042.         CX:DX -> array of FAR pointers to entry points (see #3004)
  6043. Note:    most functions are invoked by pushing the DWORD parameter block pointer
  6044.       and then performing a FAR call via the appropriate vector of the
  6045.       entry point array, placing the FAR address of the function's
  6046.       parameter block on the top of the stack
  6047. SeeAlso: AX=0104h,AX=0106h,AX=ABCDh
  6048.  
  6049. (Table 3004)
  6050. Values for HDILOAD function number: (do FAR call via entry_points+4*function)
  6051.  08h    HOPEN    Open Adapter (see #3036)
  6052.  09h    HSMX    Set Mix (see #3065)
  6053.  10h    HINT    Interrupt (see #3032)
  6054.  13h    HLDPAL    Load Palette (see #3033)
  6055.  15h    HBBW    BitBLT Write Image Data (see #3019)
  6056.  17h    HBBR    BitBLT Read Image Data (see #3020)
  6057.  18h    HBBCHN    Chained Data Go (see #3018)
  6058.  19h    HBBC    BitBLT Copy Data (see #3017)
  6059.  1Dh    HQMODE    Get Current Mode (see #3042)
  6060.  20h    HRECT    Fill Rectangle (see #3044)
  6061.  22h    HCLOSE    Close Adapter and place in quiescent state (see #3025)
  6062.  30h    HINIT    Initialize State (see #3031)
  6063.  31h    HSYNC    Synchronize Adapter (see #3070)
  6064.  39h    HSPAL    Save Palette (see #3067)
  6065.  3Ah    HRPAL    Restore Palette (see #3047)
  6066.  ???    HSGQ    Set Graphics Quality (see #3056)
  6067.  ???    HSCOORD    Set Coordinate Type (see #3053)
  6068.  ???    HESC    Escape, Terminate Processing (see #3030)
  6069.  ???    HSBCOL    Set Background Color (see #3048)
  6070.  ???    HSBP    Set Bit Plane Controls (see #3049)
  6071.  ???    HSCMP    Set Color Comparison Register (see #3051)
  6072.  ???    HSCOL    Set Color (see #3052)
  6073.  ???    HSHS    Set Scissors (clipping rectangle) (see #3057)
  6074.  ???    HXLATE    Assign Text Color (see #3071)
  6075.  ???    HQMODES    Get Adapter Modes (see #3043)
  6076.  ???    HQDPS    Get Drawing Process State Size (see #3041)
  6077.  ???    HQDFPAL    Get Default Palette (see #3040)
  6078.  ???    HQCOORD    Get Coordinate Type (see #3038)
  6079.  ???    HQCP    Get Current Position (see #3039)
  6080.  ???    HSMODE    Change Mode (see #3063)
  6081.  ???    HLINE    Draw Line at Given Position (see #3034)
  6082.  ???    HCLINE    Draw Line at Current Position (see #3024)
  6083.  ???    HRLINE    Draw Line Relative from Given Position (see #3045)
  6084.  ???    HCRLINE    Draw Line Relative at Current Position (see #3027)
  6085.  ???    HSLT    Set Line Type (see #3060)
  6086.  ???    HSLW    Set Line Width (see #3062)
  6087.  ???    HSLPC    Save Line Pattern Count (see #3059)
  6088.  ???    HRLPC    Restore Line Pattern Count (see #3046)
  6089.  ???    HCBBW    BitBLT Write Image Data at Current Position (see #3021)
  6090.  ???    HBAR    Begin Area (see #3016)
  6091.  ???    HEAR    End Area (see #3028)
  6092.  ???    HSPATT    Set Pattern (see #3068)
  6093.  ???    HSPATTO    Set Pattern Reference Point (see #3069)
  6094.  ???    HEGS    Erase Graphics Screen (see #3029)
  6095.  ???    HSCP    Set Current Position (see #3054)
  6096.  ???    HMRK    Set Marker (see #3035)
  6097.  ???    HCMRK    Set Marker at Current Position (see #3026)
  6098.  ???    HSMARK    Set Marker Shape (see #3064)
  6099.  ???    HSCS    Set Character Set (see #3055)
  6100.  ???    HCHST    Write Character String at Given Position (see #3023)
  6101.  ???    HCCHST    Write Character String at Current Position (see #3022)
  6102.  ???    HSCELL    Set Cell Size for Alphanumeric Text (see #3050)
  6103.  ???    ABLOCKMFI Write Character/Attribute Block MFI (see #3007)
  6104.  ???    ABLOCKCGA Write Character Block CGA (see #3005)
  6105.  ???    AERASE    Erase Rectangle (see #3010)
  6106.  ???    ASCROLL Scroll Rectangle (see #3011)
  6107.  ???    ACURSOR    Set Alphanumerics Cursor Position (see #3009)
  6108.  ???    ASCUR    Set Alphanumeric Cursor Shape (see #3012)
  6109.  ???    ASFONT    Set Font (see #3013)
  6110.  ???    AXLATE    Assign Alphanumeric Color (see #3015)
  6111.  
  6112. Format of ABLOCKCGA parameter block:
  6113. Offset    Size    Description    (Table 3005)
  6114.  00h    WORD    000Ah (length of following data)
  6115.  02h    WORD    top-left coordinate of character block
  6116.  04h    WORD    width of block
  6117.  06h    DWORD    -> block of WORDs describing characters (see #3006)
  6118.  0Ah    BYTE    length of block in characters
  6119.  0Bh    BYTE    highlight attribute
  6120.         bit 4: transparent background
  6121.         bit 5: overstrike
  6122.         bit 6: reverse video
  6123.         bit 7: underscore
  6124. SeeAlso: #3007
  6125.  
  6126. Bitfields for one character in ABLOCKCGA character block:
  6127. Bit(s)    Description    (Table 3006)
  6128.  3-0    foreground attribute
  6129.  7-4    background attribute
  6130.  15-8    character code
  6131.  
  6132. Format of ABLOCKMFI parameter block:
  6133. Offset    Size    Description    (Table 3007)
  6134.  00h    WORD    0009h (length of following data)
  6135.  02h    WORD    top-left coordinate of character block
  6136.  04h    WORD    width of block
  6137.  06h    DWORD    -> block of DWORDs describing characters (see #3008)
  6138.  0Ah    BYTE    length of block in characters
  6139. SeeAlso: #3005
  6140.  
  6141. Bitfields for one character in ABLOCKMFI character block:
  6142. Bit(s)    Description    (Table 3008)
  6143.  7-0    reserved
  6144.  9-8    low two bits of font number
  6145.  12    transparent background
  6146.  13    overstrike
  6147.  14    reverse video
  6148.  15    underscore
  6149.  19-16    foreground color attribute
  6150.  23-20    background color attribute
  6151.  31-24    character code
  6152.  
  6153. Format of ACURSOR parameter block:
  6154. Offset    Size    Description    (Table 3009)
  6155.  00h    WORD    0002h (length of following data)
  6156.  02h    BYTE    column (0-based)
  6157.  03h    BYTE    row (0-based)
  6158. SeeAlso: #3012
  6159.  
  6160. Format of AERASE parameter block:
  6161. Offset    Size    Description    (Table 3010)
  6162.  00h    WORD    0005h (length of following data)
  6163.  02h    BYTE    left-most column (0-based)
  6164.  03h    BYTE    top-most row (0-based)
  6165.  04h    BYTE    rectangle's width in character cells
  6166.  05h    BYTE    rectangle's height in character cells
  6167.  06h    BYTE    background color (bits 7-4)
  6168. SeeAlso: #3011
  6169.  
  6170. Format of ASCROLL parameter block:
  6171. Offset    Size    Description    (Table 3011)
  6172.  00h    WORD    0006h (length of following data)
  6173.  02h    BYTE    left-most column (0-based) of source
  6174.  03h    BYTE    top-most row (0-based) of source
  6175.  04h    BYTE    rectangle's width in character cells
  6176.  05h    BYTE    rectangle's height in character cells
  6177.  06h    BYTE    left-most column (0-based) of destination
  6178.  07h    BYTE    top-most row (0-based) of destination
  6179. SeeAlso: #3010
  6180.  
  6181. Format of ASCUR parameter block:
  6182. Offset    Size    Description    (Table 3012)
  6183.  00h    WORD    0003h (length of following data)
  6184.  02h    BYTE    cursor start line (00h = top of cell, FFh = keep current shape)
  6185.  03h    BYTE    cursor stop line
  6186.  04h    BYTE    cursor attribute
  6187.         00h normal
  6188.         01h hidden
  6189.         02h left-arrow (requires start = 2 and stop = bottom of cell)
  6190.         03h right-arrow (requires start = 2 and stop = bottom of cell)
  6191. Notes:    no cursor is shown if the start line is greater than the stop line
  6192.     the alphanumeric cursor is hidden after each mode change
  6193. SeeAlso: #3009,INT 10/AH=01h
  6194.  
  6195. Format of ASFONT parameter block:
  6196. Offset    Size    Description    (Table 3013)
  6197.  00h    WORD    0005h (length of following data)
  6198.  02h    BYTE    font number (0-3)
  6199.  03h    DWORD    -> character set definition block (see #3014)
  6200.  
  6201. Format of 8514/A character set definition block:
  6202. Offset    Size    Description    (Table 3014)
  6203.  00h    BYTE    reserved
  6204.  01h    BYTE    type of character set
  6205.         00h bitmapped, 01h&02h reserved, 03h short-stroke font
  6206.  02h    BYTE    reserved
  6207.  03h    DWORD    reserved
  6208.  07h    BYTE    cell width in pixels
  6209.  08h    BYTE    cell height in pixels
  6210.  09h    BYTE    reserved
  6211.  0Ah    WORD    cell size in bytes
  6212.  0Ch    WORD    flags
  6213.         bit 15: reserved (0)
  6214.         bit 14: color bitmap
  6215.         bit 13: proportional spacing
  6216.  0Eh    DWORD    -> index table
  6217.  12h    DWORD    -> character width table
  6218.  16h    BYTE    initial code point
  6219.  17h    BYTE    final code point
  6220.  18h    DWORD    -> character definition table
  6221.  1Ch    WORD    reserved
  6222.  1Eh    DWORD    -> second character definition table
  6223.  22h    WORD    reserved
  6224.  24h    DWORD    -> third character definition table
  6225.  
  6226. Format of AXLATE parameter block:
  6227. Offset    Size    Description    (Table 3015)
  6228.  00h    WORD    0080h (length of following data)
  6229.  02h 64 BYTEs    character foreground translation table
  6230.  42h 64 BYTEs    character background translation table
  6231.  
  6232. Format of HBAR parameter block:
  6233. Offset    Size    Description    (Table 3016)
  6234.  00h    WORD    0000h (no data following)
  6235. SeeAlso: #3028
  6236.  
  6237. Format of HBBC parameter block:
  6238. Offset    Size    Description    (Table 3017)
  6239.  00h    WORD    0010h (length of following data)
  6240.  02h    WORD    data format
  6241.         0000h across-the-plane copy (color expansion)
  6242.         0008h through-the-plane copy
  6243.  04h    WORD    data rectangle's width
  6244.  06h    WORD    data rectangle's height
  6245.  08h    BYTE    source bit plane number (across-the-plane copies only)
  6246.  09h    BYTE    reserved
  6247.  0Ah  2 WORDs    X,Y coordinates of source's upper-left corner in display memory
  6248.  0Eh  2 WORDs    X,Y coordinates of destination's upper-left corner in
  6249.           display memory
  6250. Note:    copies data from one location in video memory to another
  6251. SeeAlso: #3018
  6252.  
  6253. Format of HBBCHN parameter block:
  6254. Offset    Size    Description    (Table 3018)
  6255.  00h    WORD    0006h (length of following data)
  6256.  02h    DWORD    -> data buffer in system memory
  6257.  06h    WORD    number of bytes to transfer
  6258. Note:    this function performs the actual data transfer for a bitBLT set up
  6259.       with HBBR, HBBW, or HCBBW
  6260. SeeAlso: #3017,#3019,#3020,#3021
  6261.  
  6262. Format of HBBR parameter block:
  6263. Offset    Size    Description    (Table 3019)
  6264.  00h    WORD    000Ch or 0014h (length of following data)
  6265.  02h    WORD    data format
  6266.         0000h across-the-plane copy (color expansion)
  6267.         0008h through-the-plane copy
  6268.  04h    WORD    data rectangle's width
  6269.  06h    WORD    data rectangle's height
  6270.  08h    BYTE    source bit plane number
  6271.  09h    BYTE    reserved
  6272.  0Ah  2 WORDs    X,Y coordinates of destination's upper-left corner in
  6273.           display memory
  6274. ---optional---
  6275.  0Eh    WORD    sub-rectangle left margin in pixels
  6276.  10h    WORD    sub-rectangle top margin in pixels
  6277.  12h    WORD    sub-rectangle width
  6278.  14h    WORD    sub-rectangle height
  6279. SeeAlso: #3018,#3019,#3021
  6280.  
  6281. Format of HBBW parameter block:
  6282. Offset    Size    Description    (Table 3020)
  6283.  00h    WORD    000Ah or 0012h (length of following data)
  6284.  02h    WORD    data format
  6285.         0000h across-the-plane copy (color expansion)
  6286.         0008h through-the-plane copy
  6287.  04h    WORD    data rectangle's width
  6288.  06h    WORD    data rectangle's height
  6289.  08h  2 WORDs    X,Y coordinates of destination in display memory
  6290. ---optional---
  6291.  0Ch    WORD    sub-rectangle left margin in pixels
  6292.  0Eh    WORD    sub-rectangle top margin in pixels
  6293.  10h    WORD    sub-rectangle width
  6294.  12h    WORD    sub-rectangle height
  6295. SeeAlso: #3018,#3020,#3021
  6296.  
  6297. Format of HCBBW parameter block:
  6298. Offset    Size    Description    (Table 3021)
  6299.  00h    WORD    0006h or 000Eh (length of following data)
  6300.  02h    WORD    data format
  6301.         0000h across-the-plane copy (color expansion)
  6302.         0008h through-the-plane copy
  6303.  04h    WORD    data rectangle's width
  6304.  06h    WORD    data rectangle's height
  6305. ---optional---
  6306.  08h    WORD    sub-rectangle left margin in pixels
  6307.  0Ah    WORD    sub-rectangle top margin in pixels
  6308.  0Ch    WORD    sub-rectangle width
  6309.  0Eh    WORD    sub-rectangle height
  6310. SeeAlso: #3018,#3019,#3020
  6311.  
  6312. Format of HCCHST parameter block:
  6313. Offset    Size    Description    (Table 3022)
  6314.  00h    WORD    length of following data
  6315.  02h  N BYTEs    ASCII string to display (length given by 'length' field above)
  6316. SeeAlso: #3023
  6317.  
  6318. Format of HCHST parameter block:
  6319. Offset    Size    Description    (Table 3023)
  6320.  00h    WORD    length of following data
  6321.  02h  2 WORDs    X,Y of left-bottom corner of string on screen
  6322.  06h  N BYTEs    ASCII string to display (length given by 'length' field above)
  6323. SeeAlso: #3022
  6324.  
  6325. Format of HCLINE parameter block:
  6326. Offset    Size    Description    (Table 3024)
  6327.  00h    WORD    length of following data (multiple of 4)
  6328.  02h 2N WORDs    X,Y coordinates for each of N points in polyline
  6329. Notes:    the first line segment is drawn beginning at the current position
  6330.     on completion, the current position is set to the last point drawn
  6331. SeeAlso: #3034,#3045,#3027
  6332.  
  6333. Format of HCLOSE parameter block:
  6334. Offset    Size    Description    (Table 3025)
  6335.  00h    WORD    0001h (length of following data)
  6336.  01h    BYTE    (ret) return code
  6337. SeeAlso: #3036
  6338.  
  6339. Format of HCMRK parameter block:
  6340. Offset    Size    Description    (Table 3026)
  6341.  00h    WORD    length of following data
  6342.  02h 2N WORDs    X,Y of N points
  6343. Note:    draws N+1 marker symbols, the first one at the current position
  6344. SeeAlso: #3035
  6345.  
  6346. Format of HCRLINE parameter block:
  6347. Offset    Size    Description    (Table 3027)
  6348.  00h    WORD    length of following data (multiple of 4)
  6349.  02h 2N WORDs    X,Y coordinates relative to the position of the previous point
  6350.           (current position for first point) for each of N points in
  6351.           polyline
  6352. Notes:    the first line segment is drawn beginning at the current position
  6353.     on completion, the current position is set to the last point drawn
  6354. SeeAlso: #3034,#3024,#3045
  6355.  
  6356. Format of HEAR parameter block:
  6357. Offset    Size    Description    (Table 3028)
  6358.  00h    WORD    0001h (length of following data)
  6359.  02h    BYTE    area definition flags
  6360.         bits 7-6: End Area type
  6361.             00 complete, perform fill
  6362.             01 suspend definition
  6363.             10 complete, but don't fill
  6364. SeeAlso: #3016
  6365.  
  6366. Format of HEGS parameter block:
  6367. Offset    Size    Description    (Table 3029)
  6368.  00h    WORD    0000h (no data following)
  6369.  
  6370. Format of HESC parameter block:
  6371. Offset    Size    Description    (Table 3030)
  6372.  00h    WORD    0000h (no data following)
  6373.  
  6374. Format of HINIT parameter block:
  6375. Offset    Size    Description    (Table 3031)
  6376.  00h    WORD    0002h (length of following data)
  6377.  02h    WORD    segment of task buffer
  6378. SeeAlso: #3070
  6379.  
  6380. Format of HINT parameter block:
  6381. Offset    Size    Description    (Table 3032)
  6382.  00h    WORD    0004h (length of following data)
  6383.  02h    DWORD    interrupt/event identifier
  6384.         bit 31: vertical blanking
  6385.  
  6386. Format of HLDPAL parameter block:
  6387. Offset    Size    Description    (Table 3033)
  6388.  00h    WORD    000Ah (length of following data)
  6389.  02h    BYTE    palette ID (00h = user, 01h = default)
  6390.  03h    BYTE    reserved
  6391.  04h    WORD    number of first palette entry
  6392.  06h    WORD    number of entries
  6393.  08h    DWORD    -> palette entries
  6394. SeeAlso: #3067
  6395.  
  6396. Format of HLINE parameter block:
  6397. Offset    Size    Description    (Table 3034)
  6398.  00h    WORD    length of following data (multiple of 4)
  6399.  02h 2N WORDs    X,Y coordinates for each of N points in polyline
  6400. Note:    on completion, the current position is set to the last point drawn
  6401. SeeAlso: #3024,#3045,#3027
  6402.  
  6403. Format of HMRK parameter block:
  6404. Offset    Size    Description    (Table 3035)
  6405.  00h    WORD    length of following data (multiple of 4)
  6406.  02h 2N WORDs    X,Y for N points
  6407. SeeAlso: #3026
  6408.  
  6409. Format of HOPEN parameter block:
  6410. Offset    Size    Description    (Table 3036)
  6411.  00h    WORD    0003h (length of following data)
  6412.  01h    BYTE    initialization flags
  6413.         bit 6: don't load default palette
  6414.         bit 7: clear bitplanes
  6415.  02h    BYTE    mode type (see #3037)
  6416.  03h    BYTE    (ret) return code
  6417.         bit 7: no adapter (hardware mismatch)
  6418. SeeAlso: #3025
  6419.  
  6420. (Table 3037)
  6421. Values for 8514/A display mode:
  6422.  0000h    12x20 characters, 1024x768
  6423.  0001h    8x14 characters, 640x480
  6424.  0002h    8x14 characters, 1024x768
  6425.  0003h    7x15 characters, 1024x768
  6426.  
  6427. Format of HQCOORD parameter block:
  6428. Offset    Size    Description    (Table 3038)
  6429.  00h    WORD    0004h (length of following data)
  6430.  02h    BYTE    (ret) coordinate format
  6431.         bits 7-4: bytes per coordinate
  6432.         bits 3-0: fraction bytes in coordinate
  6433.  03h    BYTE    (ret) relative coordinate format
  6434.         bits 7-4: bytes per coordinate
  6435.         bits 3-0: fraction bytes in coordinate
  6436.  04h    BYTE    (ret) number of dimensions (2-4)
  6437.  05h    BYTE    (ret) test results
  6438.         bit 7: coordinate format not supported
  6439.         bit 6: relative coordinate format not supported
  6440.         bit 5: specified dimension not supported
  6441.  
  6442. Format of HQCP parameter block:
  6443. Offset    Size    Description    (Table 3039)
  6444.  00h    WORD    0004h (length of following data)
  6445.  02h    WORD    (ret) current X position
  6446.  04h    WORD    (ret) current Y position
  6447.  
  6448. Format of HQDFPAL parameter block:
  6449. Offset    Size    Description    (Table 3040)
  6450.  00h    WORD    0040h (length of following data)
  6451.  02h 16    DWORDs    (ret) color index values
  6452. Note:    the default palette is set to match the default EGA/VGA 16-color
  6453.       palettes
  6454.  
  6455. Format of HQDPS parameter block:
  6456. Offset    Size    Description    (Table 3041)
  6457.  00h    WORD    0006h (length of following data)
  6458.  02h    WORD    (ret) size of data buffer in bytes
  6459.  04h    WORD    (ret) stack size in bytes
  6460.  06h    WORD    (ret) size of palette save buffer in bytes
  6461.  
  6462. Format of HQMODE parameter block:
  6463. Offset    Size    Description    (Table 3042)
  6464.  00h    WORD    0012h (length of following data)
  6465.  02h    BYTE    current video mode (see #3037)
  6466.  03h    WORD    driver version
  6467.         bit 6: 80286/8086 CPU
  6468.         bit 5: 8 bit planes instead of 4 planes
  6469.         bits 4-0: hardware release number
  6470.  05h    BYTE    adapter type
  6471.         03h 8514/A
  6472.         04h XGA
  6473.  06h    BYTE    reserved (display type)
  6474.  07h    BYTE    character cell width
  6475.  08h    BYTE    character cell height
  6476.  09h    BYTE    number of bit planes
  6477.  0Ah    WORD    screen width (pixels)
  6478.  0Ch    WORD    screen height (pixels)
  6479.  0Eh    WORD    horizontal resolution (pixels/inch)
  6480.  10h    WORD    vertical resolution (pixels/inch)
  6481.  12h    BYTE    flag: 00h = monochrome, FFh = color
  6482.  13h    BYTE    intensity levels
  6483. SeeAlso: #3043
  6484.  
  6485. Format of HQMODES parameter block:
  6486. Offset    Size    Description    (Table 3043)
  6487.  00h    WORD    0021h (length of following data)
  6488.  02h    BYTE    (ret) adapter type
  6489.  03h 32 BYTEs    (ret) available display modes (FFh byte marks end of data)
  6490. SeeAlso: #3042
  6491.  
  6492. Format of HRECT parameter block:
  6493. Offset    Size    Description    (Table 3044)
  6494.  00h    WORD    0008h (legth of following data)
  6495.  02h  2 WORDs    X,Y coordinates of top left corner or rectangle
  6496.  06h    WORD    rectangle's width
  6497.  08h    WORD    rectangle's height
  6498. Note:    the rectangle is filled using the current pattern, color, and mix
  6499.  
  6500. Format of HRLINE parameter block:
  6501. Offset    Size    Description    (Table 3045)
  6502.  00h    WORD    length of following data (multiple of 4)
  6503.  02h  2 WORDs    X,Y coordinates of starting point
  6504.  06h 2N WORDs    X,Y coordinates relative to the position of the previous point
  6505.           for each of N points in polyline
  6506. Note:    on completion, the current position is set to the last point drawn
  6507. SeeAlso: #3034,#3024,#3027
  6508.  
  6509. Format of HRLPC parameter block:
  6510. Offset    Size    Description    (Table 3046)
  6511.  00h    WORD    0000h (no data following)
  6512. Note:    used for continuity of lines crossing scissors boundaries
  6513. SeeAlso: #3059
  6514.  
  6515. Format of HRPAL parameter block:
  6516. Offset    Size    Description    (Table 3047)
  6517.  00h    WORD    0300h (length of following data)
  6518.  02h 768 BYTEs    buffer containing previously-saved palette table
  6519. SeeAlso: #3067
  6520.  
  6521. Format of HSBCOL parameter block:
  6522. Offset    Size    Description    (Table 3048)
  6523.  00h    WORD    0004h (length of following data)
  6524.  02h    DWORD    color index for new background color
  6525. SeeAlso: #3052
  6526.  
  6527. Format of HSBP parameter block:
  6528. Offset    Size    Description    (Table 3049)
  6529.  00h    WORD    000Ch (length of following data)
  6530.  02h    DWORD    bitmask for graphics updates
  6531.  06h    DWORD    bitmask for alphanumeric updates
  6532.  0Ah    DWORD    display bitmask
  6533.  
  6534. Format of HSCELL parameter block:
  6535. Offset    Size    Description    (Table 3050)
  6536.  00h
  6537.  
  6538. Format of HSCMP parameter block:
  6539. Offset    Size    Description    (Table 3051)
  6540.  00h    WORD    0005h (length of following data)
  6541.  02h    DWORD    comparison color
  6542.  06h    BYTE    logical operation
  6543.         00h True
  6544.         01h pel > testcolor
  6545.         02h pel == testcolor
  6546.         03h pel < testcolor
  6547.         04h False
  6548.         05h pel >= testcolor
  6549.         06h pel <> testcolor
  6550.         07h pel <= testcolor
  6551.  
  6552. Format of HSCOL parameter block:
  6553. Offset    Size    Description    (Table 3052)
  6554.  00h    WORD    0004h (length of following data)
  6555.  02h    DWORD    color index for new foreground color
  6556. SeeAlso: #3048
  6557.  
  6558. Format of HSCOORD parameter block:
  6559. Offset    Size    Description    (Table 3053)
  6560.  00h    WORD    0003h (length of following data)
  6561.  02h    BYTE    coordinate format
  6562.         bits 7-4: bytes per coordinate
  6563.         bits 3-0: fraction bytes in coordinate
  6564.  03h    BYTE    relative coordinates format
  6565.         bits 7-4: bytes per coordinate
  6566.         bits 3-0: fraction bytes in coordinate
  6567.  04h    BYTE    number of dimensions (2-4)
  6568.  
  6569. Format of HSCP parameter block:
  6570. Offset    Size    Description    (Table 3054)
  6571.  00h    WORD    0004h (length of following data)
  6572.  02h  2 WORDs    X,Y or coordinate for new current position
  6573.  
  6574. Format of HSCS parameter block:
  6575. Offset    Size    Description    (Table 3055)
  6576.  00h    WORD    0004h (length of following data)
  6577.  02h    DWORD    -> character set definition
  6578.  
  6579. Format of HSGQ parameter block:
  6580. Offset    Size    Description    (Table 3056)
  6581.  00h    WORD    0002h (length of following data)
  6582.  02h    WORD    quality settings (see #3058)
  6583.  
  6584. Format of HSHS parameter block:
  6585. Offset    Size    Description    (Table 3057)
  6586.  00h    WORD    0008h (length of following data)
  6587.  02h    WORD    left edge of clipping rectangle (-2048 to +6143)
  6588.  04h    WORD    right edge
  6589.  06h    WORD    top edge
  6590.  08h    WORD    bottom edget
  6591.  
  6592. Bitfields for 8514/A quality settings:
  6593. Bit(s)    Description    (Table 3058)
  6594.  15    reserved
  6595.  14    high precision
  6596.  13    reserved
  6597.  12-11    pel code
  6598.     00 not drawn
  6599.     01 drawn
  6600.     02 conditional on overpainting/mixes
  6601.  10    don't close areas to be filed
  6602.  9-0    reserved
  6603.  
  6604. Format of HSLPC parameter block:
  6605. Offset    Size    Description    (Table 3059)
  6606.  00h    WORD    0000h (no data following)
  6607. Note:    used for continuity of lines crossing scissors boundaries
  6608. SeeAlso: #3046
  6609.  
  6610. Format of HSLT parameter block:
  6611. Offset    Size    Description    (Table 3060)
  6612.  00h    WORD    0006h (length of following data)
  6613.  02h    BYTE    line type (see #3061)
  6614.  03h    BYTE    reserved
  6615.  04h    DWORD    -> user line-type definition (if user type)
  6616. SeeAlso: #3062
  6617.  
  6618. (Table 3061)
  6619. Values for 8514/A line type:
  6620.  00h    user line type
  6621.  01h    dotted
  6622.  02h    short dashes
  6623.  03h    dash-dot
  6624.  04h    double dotted
  6625.  05h    dashed
  6626.  06h    dash double dot
  6627.  07h    solid
  6628.  08h    invisible
  6629. SeeAlso: #3060
  6630.  
  6631. Format of HSLW parameter block:
  6632. Offset    Size    Description    (Table 3062)
  6633.  00h    WORD    0001h (length of following data)
  6634.  02h    BYTE    width of line in pixels
  6635. SeeAlso: #3060
  6636.  
  6637. Format of HSMODE parameter block:
  6638. Offset    Size    Description    (Table 3063)
  6639.  00h    WORD    0001h (length of following data)
  6640.  02h    BYTE    new display mode number (see #3037)
  6641.  
  6642. Format of HSMRK paramter block:
  6643. Offset    Size    Description    (Table 3064)
  6644.  00h    WORD    000Eh (length of following data)
  6645.  02h    BYTE    cell width
  6646.  03h    BYTE    cell height
  6647.  04h    BYTE    flags
  6648.  05h    BYTE    reserved
  6649.  06h    WORD    length of marker symbol
  6650.  08h    DWORD    -> image definition data
  6651.  0Ch    DWORD    -> color definition data
  6652. SeeAlso: #3068
  6653.  
  6654. Format of HSMX parameter block:
  6655. Offset    Size    Description    (Table 3065)
  6656.  00h    WORD    0002h (length of following data)
  6657.  02h    BYTE    foreground mix (see #3066)
  6658.  03h    BYTE    background mix (see #3066)
  6659.  
  6660. (Table 3066)
  6661. Values for 8514/A mix:
  6662.  00h    retain previous mix
  6663.  01h    source OR destination
  6664.  02h    source
  6665.  04h    source XOR destination
  6666.  05h    leave as-is
  6667.  06h    max(source,destination)
  6668.  07h    min(source,destination)
  6669.  08h    source+destination (clipped)
  6670.  09h    destination-source (clipped to zero)
  6671.  0Ah    source-destination (clipped to zero)
  6672.  0Bh    average source and destination
  6673.  10h    zero destination
  6674.  11h    source AND destination
  6675.  12h    source AND NOT destination
  6676.  13h    source
  6677.  14h    NOT source AND destination
  6678.  15h    leave as-is
  6679.  16h    source XOR destination
  6680.  17h    source OR destination
  6681.  18h    NOT source AND NOT destination
  6682.  19h    NOT (source XOR destination)
  6683.  1Ah    NOT destination
  6684.  1Bh    source OR NOT destination
  6685.  1Ch    NOT source
  6686.  1Dh    NOT source OR destination
  6687.  1Eh    NOT source OR NOT destination
  6688.  1Fh    set all bits of destination
  6689.  
  6690. Format of HSPAL parameter block:
  6691. Offset    Size    Description    (Table 3067)
  6692.  00h    WORD    0300h (length of following data)
  6693.  02h 768 BYTEs    buffer for palette table
  6694. SeeAlso: #3033,#3047
  6695.  
  6696. Format of HSPATT parameter block:
  6697. Offset    Size    Description    (Table 3068)
  6698.  00h    WORD    000Eh (length of following data)
  6699.  02h    BYTE    cell width
  6700.  03h    BYTE    cell height
  6701.  04h    BYTE    flags
  6702.  05h    BYTE    reserved
  6703.  06h    WORD    length of marker symbol
  6704.  08h    DWORD    -> image definition data
  6705.  0Ch    DWORD    -> color definition data
  6706. SeeAlso: #3064,#3069
  6707.  
  6708. Format of HSPATTO parameter block:
  6709. Offset    Size    Description    (Table 3069)
  6710.  00h    WORD    0004h (length of following data)
  6711.  02h  2 WORDs    X,Y of pattern reference point (origin)
  6712. SeeAlso: #3068
  6713.  
  6714. Format of HSYNC parameter block:
  6715. Offset    Size    Description    (Table 3070)
  6716.  00h    WORD    0002h (length of following data)
  6717.  02h    WORD    segment of task state buffer
  6718. SeeAlso: #3031
  6719.  
  6720. Format of HXLATE parameter block:
  6721. Offset    Size    Description    (Table 3071)
  6722.  00h    WORD    0020h (length of following data)
  6723.  02h 32 BYTEs    color index table
  6724. --------V-7F0105-----------------------------
  6725. INT 7F - IBM XGA Adapter Interface (XGAAIDOS.SYS)
  6726.     AX = 0105h
  6727. Return: CF set on error
  6728.     CF clear if successful
  6729.         CX:DX -> array of FAR pointers to entry points (see #3004)
  6730. Note:    this API is a superset of the 8514/A Adapter Interface
  6731.       (see AX=0105h"HDILOAD")
  6732. --------V-7F0106-----------------------------
  6733. INT 7F - HDILOAD Mach32 Adapter Interface - UNINSTALL
  6734.     AX = 0106h
  6735. Return: AX = 0105h if successfully unloaded
  6736. SeeAlso: AX=0105h
  6737. --------N-7F02-------------------------------
  6738. INT 7F - Alloy NTNX, MW386 - RELEASE SEMAPHORE
  6739.     AH = 02h
  6740.     DS:DX -> ASCIZ semaphore name (max 64 bytes)
  6741. Return: AL = status (see #2998)
  6742.     AH = semaphore owner if status=02h
  6743. SeeAlso: AH=00h,AH=01h,AH=42h
  6744. --------T-7F02-------------------------------
  6745. INT 7F - MultiLink Advanced v1.0+ - RELEASE CPU
  6746.     AH = 02h
  6747. Return: ???
  6748. Desc:    yields CPU to other tasks
  6749. SeeAlso: AH=00h"MultiLink",AH=09h"MultiLink",INT 15/AX=1000h
  6750. --------N-7F02-------------------------------
  6751. INT 7F - G8BPQ v4.00+ - HOST MODE - SEND FRAME
  6752.     AH = 02h
  6753.     AL = stream number (01h-40h)
  6754.     CX = length of frame
  6755.     ES:SI -> frame to be sent
  6756. SeeAlso: AH=00h"G8BPQ",AH=03h"G8BPQ",AH=07h"G8BPQ",AH=0Ah"G8BPQ"
  6757. --------f-7F0200-----------------------------
  6758. INT 7F - Btrieve Multi-User - GIVE UP TIME???
  6759.     AX = 0200h
  6760. SeeAlso: INT 2F/AX=AB01h,INT 2F/AX=AB02h,INT 7B"Btrieve"
  6761. --------N-7F03-------------------------------
  6762. INT 7F - Alloy ANSK, NTNX, MW386 - GET USER NUMBER
  6763.     AH = 03h
  6764. Return: AL = user number
  6765.     AH = machine number (MW386)
  6766. Note:    this function call is the recommended method for a CPU-bound process to
  6767.       prevent its priority from being lowered
  6768. SeeAlso: AH=04h,AH=05h,AH=A1h
  6769. --------N-7F03-------------------------------
  6770. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE FRAME
  6771.     AH = 03h
  6772.     AL = stream number (01h-40h)
  6773.     ES:DI -> buffer for frame (must be large enough for a full frame; 350
  6774.           bytes is usually sufficient)
  6775. Return:    BX = number of pending frames (0000h if returned frame was last avail)
  6776.     CX = length of received frame
  6777. SeeAlso: AH=02h"G8BPQ",AH=07h"G8BPQ",AH=0Bh"G8BPQ"
  6778. --------N-7F04-------------------------------
  6779. INT 7F - Alloy NTNX, MW386 - GET NUMBER OF USERS
  6780.     AH = 04h
  6781. Return: AL = total number of users on currrent machine (MW386)
  6782.     AL = number of slaves on system (NTNX)
  6783. SeeAlso: AH=03h
  6784. --------N-7F04-------------------------------
  6785. INT 7F - G8BPQ v4.00+ - HOST MODE - GET STREAM STATUS
  6786.     AH = 04h
  6787.     AL = stream number (01h-40h)
  6788. Return: CX = state (0000h disconnected, 0001h connected)
  6789.     DX = delta state (0000h no change, 0001h changed since last check)
  6790. SeeAlso: AH=00h"G8BPQ",AH=02h"G8BPQ",AH=05h"G8BPQ"
  6791. --------N-7F05-------------------------------
  6792. INT 7F - Alloy NTNX (Host) - LOCK/UNLOCK SYSTEM, SPOOLER CONTROL
  6793.     AH = 05h
  6794.     AL = function
  6795.         00h lock system (disable slave services)
  6796.         01h unlock system
  6797.         02h enable spooler
  6798.         03h disable spooler
  6799.         04h enable slave timer update
  6800.         05h disable slave timer update
  6801.         06h enable form feeds
  6802.         07h disable form feeds
  6803. SeeAlso: INT 17/AH=A4h
  6804. --------N-7F05-------------------------------
  6805. INT 7F - Alloy NTNX (Slave), MW386 - GET USER PARAMETERS
  6806.     AH = 05h
  6807.     DX:DI -> buffer for user information record (see #3072)
  6808. Notes:    MW386 provides this function for backward compatibility only, and sets
  6809.       many of the fields to zero because they are meaningless under MW386
  6810.     this function has no effect when called by the host (user 0)
  6811. SeeAlso: AH=03h
  6812.  
  6813. Format of Alloy user information record:
  6814. Offset    Size    Description    (Table 3072)
  6815.  00h    WORD    segment of video RAM
  6816.  02h    WORD    segment of secondary copy of video RAM
  6817.  04h    WORD    offset of screen update flag (see INT 10/AH=8Bh)
  6818.         flag nonzero if update needed
  6819.  06h    WORD    video NMI enable port
  6820.         (not used by MW386, set to 0000h)
  6821.  08h    WORD    video NMI disable port
  6822.         (not used by MW386, set to 0000h)
  6823.  0Ah    BYTE    processor type
  6824.         00h 8088
  6825.         01h V20
  6826.         02h 8086
  6827.         03h V30
  6828.         06h 80386
  6829.  0Bh    WORD    multitasking flag (00h = single tasking, 01h = multitasking)
  6830.         (not used by MW386, set to 0000h)
  6831.  0Dh    WORD    offset of terminal driver
  6832.         (not used by MW386, set to 0000h)
  6833.  0Fh    BYTE    port for console I/O
  6834.         (not used by MW386, set to 0000h)
  6835.  10h    WORD    offset of processor communication busy flag
  6836.         bit 7 set when slave communicating with host
  6837.  12h    WORD    pointer to FAR NX system call
  6838.         (not used by MW386, set to 0000h)
  6839.  14h    WORD    offset of 16-byte user configuration record (see AH=38h)
  6840.  16h    WORD    offset of command/status word
  6841.  18h    WORD    offset of screen valid flag (see INT 10/AH=93h)
  6842.         nonzero if screen must be repainted
  6843.  1Ah    WORD    offset of screen repaint flag
  6844.  1Ch    WORD    pointer to NEAR NX system call
  6845.         (not used by MW386, set to 0000h)
  6846.  1Eh    WORD    offset for intercept flags
  6847.         (not used by MW386, set to 0000h)
  6848.         intercept flag = FFh if MS-DOS intercepts should be disabled
  6849.  20h    WORD    offset of terminal lock flag (see INT 10/AH=92h)
  6850.         lock flag = FFh if backgrnd screen updates should be suspended
  6851.  22h 26 BYTEs    reserved
  6852. --------N-7F05-------------------------------
  6853. INT 7F - G8BPQ v4.00+ - HOST MODE - ACKNOWLEDGE STREAM STATUS CHANGE
  6854.     AH = 05h
  6855.     AL = stream number (01h-40h)
  6856. Note:    this function must be called in order to receive a report of another
  6857.       status change
  6858. SeeAlso: AH=00h"G8BPQ",AH=04h"G8BPQ"
  6859. --------N-7F06-------------------------------
  6860. INT 7F - Alloy NTNX (Host) - GET SHARED DRIVE INFO
  6861.     AH = 06h
  6862.     AL = drive number (1=A:, 2=B:, etc)
  6863.     ES:DI -> drive info record (see #3073)
  6864. Return: AX = status
  6865.         0000h successful
  6866.         ES:DI buffer filled
  6867.         0001h not shared drive
  6868.  
  6869. Format of Alloy drive info record:
  6870. Offset    Size    Description    (Table 3073)
  6871.  00h    WORD    segment of drive IO-REQUEST structure (MS-DOS DPB)
  6872.  02h    WORD    segment of allocation map (owner table)
  6873.         one byte per FAT entry, containing user ID owning that entry
  6874.  04h    WORD    segment of master FAT for drive (copy of FAT on disk)
  6875.  06h    WORD    pointer to configuration file
  6876.  08h    WORD    total number of clusters
  6877.  0Ah    WORD    bytes per sector
  6878.  0Ch    WORD    sectors per cluster
  6879.  0Eh    BYTE    FAT type (0Ch = 12-bit, 10h = 16-bit)
  6880. --------N-7F06-------------------------------
  6881. INT 7F - Alloy NTNX (Slave) - ALLOCATE FREE CLUSTER ON SHARED DRIVE
  6882.     AH = 06h
  6883.     DL = drive number (1=A:,2=B:,etc)
  6884.     CX = number of clusters to allocate
  6885. Return: AH = status
  6886.         00h successful
  6887.         CX = number of clusters still free
  6888.         10h invalid shared drive request
  6889.         CL = first and second shared drives
  6890.         11h invalid cluster count (must be 01h-FFh)
  6891. --------N-7F06-------------------------------
  6892. INT 7F - G8BPQ v4.00+ - HOST MODE - SESSION CONTROL
  6893.     AH = 06h
  6894.     AL = stream number (01h-40h)
  6895.     CX = subfunction
  6896.         0000h connect to node
  6897.         DL bit 0: use BBS callsign instead of Node Call
  6898.         0001h connect to node
  6899.         use BBS Call if APPLMASK=1
  6900.         0002h disconnect
  6901.         0003h return user to node
  6902. SeeAlso: AH=01h"G8BPQ",AH=04h"G8BPQ"
  6903. --------N-7F07-------------------------------
  6904. INT 7F - Alloy NTNX, MW386 - GET LIST OF SHARED DRIVES
  6905.     AH = 07h
  6906. Return: ES:DI -> shared drive list (see #3074)
  6907. Note:    MW386 considers all fixed disks to be shared drives; only C and D will
  6908.       be returned as shared
  6909.  
  6910. Format of Alloy shared drive list:
  6911. Offset    Size    Description    (Table 3074)
  6912.  00h    BYTE    string length
  6913.  01h    BYTE    number of shared drives
  6914.  02h  N BYTEs    one byte per shared drive
  6915. --------N-7F07-------------------------------
  6916. INT 7F - G8BPQ v4.00+ - HOST MODE - GET BUFFER COUNTS FOR STREAM
  6917.     AH = 07h
  6918.     AL = stream number (01h-40h)
  6919. Return: BX = number of pending receive frames
  6920.     CX = number of unacknowledged sent frames
  6921.     DX = number of buffers available
  6922. SeeAlso: AH=02h"G8BPQ",AH=03h"G8BPQ"
  6923. --------N-7F08-------------------------------
  6924. INT 7F - Alloy NTNX (Host) - GET INTERRUPT VECTORS
  6925.     AH = 08h
  6926.     CL = function
  6927.         00h get original interrupt vector
  6928.         01h get Network Executive interrrupt
  6929.     AL = interrupt number
  6930.     DX:SI -> DWORD to hold interrupt vector
  6931. Return: AL = status
  6932.         00h successful
  6933.         01h interrupt vector not used by network executive
  6934.         02h invalid subfunction
  6935. Note:    the network executive uses interrupts 02h,08h,09h,0Fh,10h,13h,16h-19h,
  6936.       1Ch,20h,28h,2Ah,2Fh,5Bh,67h,7Fh,ECh, and F0h-FFh
  6937. SeeAlso: AH=09h/CL=03h,INT 21/AH=35h
  6938. --------N-7F08--CL02-------------------------
  6939. INT 7F - Alloy NTNX - SET MESSAGE DISPLAY TIMEOUT
  6940.     AH = 08h
  6941.     CL = 02h
  6942.     DX = timeout in seconds
  6943. Return: AL = status
  6944.         00h successful
  6945.         02h invalid subfunction
  6946. --------N-7F08-------------------------------
  6947. INT 7F - G8BPQ v4.00+ - HOST MODE - PORT CONTROL/INFORMATION
  6948.     AH = 08h
  6949.     AL = stream number (01h-40h)
  6950. Return: ES:DI -> 10-byte buffer containing blank-padded callsign
  6951.     ---v4.05+ ---
  6952.     AL = radio port to which channel is connected (level 2)
  6953.     AH = session type (see #3075)
  6954.     BX = L2 paclen for session
  6955.     CX = maximum frame size
  6956.     DX = L4 window size or 0000h if not L4 circuit
  6957. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  6958.       John Wiseman which allows a PC to act as a node in an AX.25 network
  6959. SeeAlso: AH=01h"G8BPQ",AH=02h"G8BPQ",AH=03h"G8BPQ",AH=0Ah"G8BPQ"
  6960.  
  6961. Bitfields for G8BPQ session type:
  6962. Bit(s)    Description    (Table 3075)
  6963.  0    L2LINK
  6964.  1    SESSION
  6965.  2    UPLINK
  6966.  3    DOWNLIND
  6967.  5    BPQHOST
  6968. --------T-7F09-------------------------------
  6969. INT 7F - MultiLink Advanced v1.0+ - SET TASK PRIORITY
  6970.     AH = 09h
  6971.     AL = priority (0-7)
  6972. Note:    the installation check consists of ensuring that the interrupt vector
  6973.       is not pointing at segment 0000h, then checking whether the byte
  6974.       at offset 0000h in the interrupt handler's segment is E9h
  6975. Index:    installation check;MultiLink Advanced
  6976. SeeAlso: AH=00h"MultiLink",AH=0Ah"MultiLink"
  6977. --------N-7F09-------------------------------
  6978. INT 7F - G8BPQ - proposed addition - GET NODE/APPLICATION CALLSIGN AND ALIAS
  6979.     AH = 09h
  6980.     AL = application
  6981.         00h node
  6982.         01h BBS
  6983.         02h HOST
  6984.         03h SYSOP
  6985.     BL = what to get (00h callsign, 01h application name)
  6986.     ES:SI -> buffer for callsign/name string
  6987. Return: CX = length of returned string
  6988. SeeAlso: AH=00h"G8BPQ",AH=01h"G8BPQ",AH=0Ch"G8BPQ"
  6989. --------N-7F09-------------------------------
  6990. INT 7F - Alloy NTNX - ENABLE/DISABLE MUD FILE CHECKING
  6991.     AH = 09h
  6992.     CL = function
  6993.         00h enable checking of RTNX.MUD file
  6994.         01h disable RTNX.MUD checking
  6995. --------N-7F09--CL02-------------------------
  6996. INT 7F - Alloy NTNX - SWITCH HOST TO DEDICATED MODE
  6997.     AH = 09h
  6998.     CL = 02h
  6999. Note:    in dedicated mode, the host will only poll for I/O requests from the
  7000.       slave processors, and not provide workstation services
  7001. --------N-7F09--CL03-------------------------
  7002. INT 7F - Alloy NTNX,MW386 - GET ALTERNATE INTERRUPT
  7003.     AH = 09h
  7004.     CL = 03h
  7005.     AL = default interrupt number (67h,7Fh,etc)
  7006. Return: CL = actual interrupt which handles specified interrupt's calls
  7007. SeeAlso: AH=08h
  7008. --------N-7F0A--CL00-------------------------
  7009. INT 7F - Alloy NTNX - GET SYSTEM FLAGS
  7010.     AH = 0Ah
  7011.     CL = 00h
  7012.     ES:DI -> buffer for system flags (see #3076)
  7013. Return: ES:DI buffer filled
  7014. Notes:    on a slave, only the NX_Busy flag is returned
  7015.     all three flags are at fixed positions, so this function only needs to
  7016.       be called once
  7017.     an interrupt handler should only perform DOS or device accesses when
  7018.       all three flags are 00h
  7019.  
  7020. Format of Alloy system flags:
  7021. Offset    Size    Description    (Table 3076)
  7022.  00h    DWORD    pointer to NX_Busy flag (nonzero when communicating with users)
  7023.  04h    DWORD    pointer to device driver busy flag
  7024.  08h    DWORD    pointer to InTimer flag
  7025. --------N-7F0A-------------------------------
  7026. INT 7F - G8BPQ v4.00+ - HOST MODE - TRANSMIT RAW (KISS) FRAME
  7027.     AH = 0Ah
  7028.     AL = radio port
  7029.     ES:SI -> buffer containing data to be sent
  7030.     CX = number of bytes to send
  7031. SeeAlso: AH=02h"G8BPQ",AH=08h"G8BPQ",AH=0Bh"G8BPQ"
  7032. --------T-7F0A-------------------------------
  7033. INT 7F - MultiLink Advanced v1.0+ - SET KEYBOARD TEST STATUS
  7034.     AH = 0Ah
  7035.     AL = task-switch status
  7036.         00h normal (disable task when it repeatedly polls keyboard)
  7037.         01h disable task until keyboard input available
  7038.         FFh never disable task
  7039. Return: ???
  7040. SeeAlso: AH=09h"MultiLink"
  7041. --------N-7F0B--CL02-------------------------
  7042. INT 7F - Alloy NTNX (Host) - SET/RESET GRAPHICS DOS ON SLAVE
  7043.     AH = 0Bh
  7044.     CL = 02h
  7045.     AL = slave ID number
  7046.     CH = DOS to activate
  7047.         00h graphics DOS
  7048.         01h character DOS
  7049. Return: AL = status
  7050.         00h successful
  7051.         01h nothing done, proper DOS type already loaded
  7052. --------N-7F0B-------------------------------
  7053. INT 7F - G8BPQ v4.00+ - HOST MODE - RECEIVE TRACE (RAW DATA) FRAME
  7054.     AH = 0Bh
  7055.     ES:DI -> buffer for received data (see #3077)
  7056. Return: CX = number of bytes received
  7057. Note:    the specified buffer must be large enough to receive a full frame
  7058. SeeAlso: AH=03h"G8BPQ",AH=08h"G8BPQ",AH=0Ah"G8BPQ"
  7059.  
  7060. Format of G8BPQ received data:
  7061. Offset    Size    Description    (Table 3077)
  7062.  00h    WORD    internal control information
  7063.  02h    BYTE    port number (bit 7 set if transmitted frame)
  7064.  03h    WORD    frame length including this header
  7065.  05h    var    user data
  7066. --------N-7F0C-------------------------------
  7067. INT 7F - G8BPQ v4.00+ - HOST MODE - UPDATE SWITCH INFORMATION
  7068.     AH = 0Ch
  7069.     DX = function
  7070.         0001h update beacon text
  7071.         CX = length of data
  7072.         ES:SI -> data to be sent in beacons
  7073.         0002h (v4.07+) initiate NODES broadcast
  7074. SeeAlso: AH=09h"G8BPQ"
  7075. --------N-7F0D00-----------------------------
  7076. INT 7F - G8BPQ v4.07+ - HOST MODE - GET AVAILABLE STREAM
  7077.     AX = 0D00h
  7078. Return: AL = first available stream number, or FFh if none free
  7079. SeeAlso: AH=00h"G8BPQ",AH=0Dh
  7080. --------N-7F0D-------------------------------
  7081. INT 7F - G8BPQ v4.07+ - HOST MODE - ALLOCATE/DEALLOCATE STREAM
  7082.     AH = 0Dh
  7083.     AL = stream number (01h-FFh)
  7084.     CL = function
  7085.         01h allocate stream
  7086.         Return: CX = status (0000h successful, else already in use)
  7087.         02h deallocate stream
  7088. SeeAlso: AX=0D00h
  7089. --------N-7F0F-------------------------------
  7090. INT 7F - G8BPQ v4.00+ - HOST MODE - GET TIME MARKER
  7091.     AH = 0Fh
  7092. Return: AX = time marker (clock ticks modulo 64K)
  7093. Program: the G8BPQ AX25 Networking Package is amateur packet radio software by
  7094.       John Wiseman which allows a PC to act as a node in an AX.25 network
  7095. SeeAlso: AH=01h"G8BPQ",AX=0D00h,INT 1A/AH=00h
  7096. --------N-7F10--CL00-------------------------
  7097. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - OPEN CHANNEL
  7098.     AH = 10h
  7099.     CL = 00h
  7100.     AL = channel number
  7101.     DX:DI -> channel buffer
  7102. Return: AL = status (00h-03h,0Dh) (see #3078)
  7103. Note:    may not be invoked from within a hardware interrupt handler
  7104. SeeAlso: AH=10h/CL=01h,AH=10h/CL=04h,AH=14h/CL=02h
  7105.  
  7106. (Table 3078)
  7107. Values for Alloy function status:
  7108.  00h    successful
  7109.  01h    busy
  7110.  02h    channel range error (not 00h-3Fh)
  7111.  03h    invalid subfunction
  7112.  0Ah    channel not open
  7113.  0Ch    channel already locked
  7114.  0Dh    unable to open
  7115. --------N-7F10--CL01-------------------------
  7116. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE CHANNEL
  7117.     AH = 10h
  7118.     CL = 01h
  7119.     AL = channel number
  7120. Return: AL = status (00h-03h,0Ah) (see #3078)
  7121. Note:    may not be invoked from within a hardware interrupt handler
  7122. SeeAlso: AH=10h/CL=00h,AH=10h/CL=05h
  7123. --------N-7F10--CL02-------------------------
  7124. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK CHANNEL
  7125.     AH = 10h
  7126.     CL = 02h
  7127.     AL = channel number
  7128. Return: AL = status (00h-03h,0Ah,0Ch) (see #3078)
  7129. Note:    may not be invoked from within a hardware interrupt handler
  7130. SeeAlso: AH=10h/CL=03h,AH=10h/CL=06h,AH=10h/CL=08h
  7131. --------N-7F10--CL03-------------------------
  7132. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK CHANNEL
  7133.     AH = 10h
  7134.     CL = 03h
  7135.     AL = channel number
  7136. Return: AL = status (00h-03h,0Ah) (see #3078)
  7137. Notes:    should only be used on channels locked with AH=10h/CL=02h, not on those
  7138.       locked by receipt of a datagram
  7139.     may not be invoked from within a hardware interrupt handler
  7140. SeeAlso: AH=10h/CL=02h,AH=10h/CL=04h,AH=10h/CL=09h
  7141. --------N-7F10--CL04-------------------------
  7142. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - RELEASE BUFFER
  7143.     AH = 10h
  7144.     CL = 04h
  7145.     AL = channel number
  7146. Return: AL = status (00h-03h) (see #3078)
  7147. Notes:    unlocks buffer after received datagram has been processed
  7148.     may not be invoked from within a hardware interrupt handler
  7149. SeeAlso: AH=10h/CL=00h
  7150. --------N-7F10--CL05-------------------------
  7151. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - CLOSE ALL CHANNELS
  7152.     AH = 10h
  7153.     CL = 05h
  7154. Return: AL = status (00h-03h) (see #3078)
  7155. Notes:    clears all pending datagrams and clears buffer pointers before closing
  7156.       the channels
  7157.     may not be invoked from within a hardware interrupt handler
  7158. SeeAlso: AH=10h/CL=01h
  7159. --------N-7F10--CL06-------------------------
  7160. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK ALL OPEN CHANNELS
  7161.     AH = 10h
  7162.     CL = 06h
  7163. Return: AL = status (00h-03h) (see #3078)
  7164. Note:    may not be invoked from within a hardware interrupt handler
  7165. SeeAlso: AH=10h/CL=02h,AH=10h/CL=08h
  7166. --------N-7F10--CL07-------------------------
  7167. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK ALL LOCKED IDLE CHANNELS
  7168.     AH = 10h
  7169.     CL = 07h
  7170. Return: AL = status (00h-03h) (see #3078)
  7171. Notes:    unlocks all locked channels which have no pending datagrams
  7172.     may not be invoked from within a hardware interrupt handler
  7173. SeeAlso: AH=10h/CL=03h,AH=10h/CL=09h
  7174. --------N-7F10--CL08-------------------------
  7175. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - LOCK MULTIPLE CHANNELS
  7176.     AH = 10h
  7177.     CL = 08h
  7178.     DX = maximum channel number to lock
  7179. Return: AL = status (00h-03h) (see #3078)
  7180. Notes:    locks channels numbered 00h through the value in DX
  7181.     may not be invoked from within a hardware interrupt handler
  7182. SeeAlso: AH=10h/CL=02h,AH=10h/CL=06h,AH=10h/CL=09h
  7183. --------N-7F10--CL09-------------------------
  7184. INT 7F - Alloy NTNX, MW386 - CHANNEL CONTROL - UNLOCK MULTIPLE CHANNELS
  7185.     AH = 10h
  7186.     CL = 09h
  7187.     DX = maximum channel number to unlock
  7188. Return: AL = status (00h-03h) (see #3078)
  7189. Notes:    unlocks channels numbered 00h through the value in DX
  7190.     may not be invoked from within a hardware interrupt handler
  7191. SeeAlso: AH=10h/CL=03h,AH=10h/CL=07h,AH=10h/CL=08h
  7192. --------N-7F11-------------------------------
  7193. INT 7F - Alloy NTNX, MW386 - SEND DATAGRAM
  7194.     AH = 11h
  7195.     DX:SI -> request block (see #3080)
  7196. Return: AL = status (see #3079)
  7197. Note:    if wildcard channel FFh used, actual channel number will be filled in
  7198. SeeAlso: AH=12h
  7199.  
  7200. (Table 3079)
  7201. Values for Alloy function status:
  7202.  00h    successful
  7203.  01h    busy
  7204.  02h    channel range error (not 00h-3Fh)
  7205.  03h    invalid subfunction
  7206.  0Ah    packet too large (or <2 bytes if NTNX)
  7207.  0Bh    can't send packet to itself
  7208.  0Ch    invalid number of destinations
  7209.  0Dh    destination channel number out of range
  7210.  0Eh    destination user is busy
  7211.  0Fh    destination user has locked channel
  7212.  10h    channel not open
  7213.  11h    no datagram server on destination (NTNX)
  7214.  
  7215. Format of Alloy request block:
  7216. Offset    Size    Description    (Table 3080)
  7217.  00h    DWORD    pointer to packet to send
  7218.  04h    WORD    packet size in bytes (1-4096)
  7219.  06h    BYTE    number of destinations for packet (max 1Fh)
  7220.  07h 31 BYTEs    destination user IDs (FFh = broadcast to all except sender)
  7221.  26h 31 BYTEs    destination channels (FFh = first available channel)
  7222.  45h 31 BYTEs    return destination statuses
  7223. --------N-7F12-------------------------------
  7224. INT 7F - Alloy NTNX, MW386 - ACKNOWLEDGE DATAGRAM
  7225.     AH = 12h
  7226.     AL = channel number being acknowledged
  7227.     DI:DX = 32-bit status to return to sender
  7228. Return: AL = status (see #3081)
  7229. Note:    also unlocks the channel, allowing the next datagram to be received
  7230. SeeAlso: AH=11h,AH=15h/CL=04h
  7231.  
  7232. (Table 3081)
  7233. Values for Alloy function status:
  7234.  00h    successful
  7235.  01h    busy
  7236.  02h    channel range error (not 00h-3Fh)
  7237.  03h    invalid subfunction
  7238.  0Ah    channel not open
  7239.  0Bh    no message in channel
  7240.  0Ch    destination slave busy--retry (NTNX)
  7241.  0Dh    destination user not active
  7242.  0Eh    destination slave not active (NTNX)
  7243.  0Fh    destination disabled datagram service
  7244. --------V-7F1234-----------------------------
  7245. INT 7F - TIGA Communications Driver v2.05 - UNINSTALL
  7246.     AX = 1234h
  7247. SeeAlso: AX=4321h
  7248. --------N-7F13--CL00-------------------------
  7249. INT 7F - Alloy NTNX, MW386 - RESET USER DATAGRAMS
  7250.     AH = 13h
  7251.     CL = 00h
  7252. Note:    clears all pending datagrams and removes all channels opened in NTNX
  7253.       compatibility mode
  7254. --------N-7F14--CL00-------------------------
  7255. INT 7F - Alloy NTNX, MW386 -  SET RECEIVE ISR
  7256.     AH = 14h
  7257.     CL = 00h
  7258.     DX:DI -> application FAR receive service routine (see #3082)
  7259. Return: AL = status (00h-03h) (see #3081)
  7260. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  7261.  
  7262. (Table 3082)
  7263. Values Alloy receive service routine is called with:
  7264.     DH = sender ID
  7265.     DL = channel with datagram
  7266.     interrupts disabled
  7267. Return: AL = response code
  7268.         00h leave buffer locked, set channel status, and repeat call later
  7269.         01h release channel buffer
  7270.         02h change buffer pointer to DX:DI
  7271.     AH,CX,DX,DI,SI may be destroyed
  7272. --------N-7F14--CL01-------------------------
  7273. INT 7F - Alloy NTNX, MW386 - SET ACKNOWLEDGE ISR
  7274.     AH = 14h
  7275.     CL = 01h
  7276.     DX:DI -> application FAR acknowledge service routine (see #3083)
  7277. Return: AL = status (00h-03h) (see #3081)
  7278. Note:    the service routine will be called as soon as an acknowledgment arrives
  7279. SeeAlso: AH=12h,AH=14h/CL=00h,AH=14h/CL=04h,AH=15h/CL=04h
  7280.  
  7281. (Table 3083)
  7282. Values Alloy acknowledge service routine is called with:
  7283.     DS:SI -> acknowledge structure (see #3087)
  7284. Return: AL = response code
  7285.         00h application busy, network executive should call again later
  7286.         01h acknowledge accepted
  7287.     AH,DX,SI may be destroyed
  7288. --------N-7F14--CL02-------------------------
  7289. INT 7F - Alloy NTNX, MW386 - SET CHANNEL BUFFER POINTER
  7290.     AH = 14h
  7291.     CL = 02h
  7292.     AL = channel number
  7293.     DX:DI -> receive buffer
  7294. Return: AL = status (00h-03h) (see #3081)
  7295. Note:    may be called from within a receive ISR or when a datagram is pending
  7296. SeeAlso: AH=10h/CL=00h,AH=14h/CL=00h
  7297. --------N-7F14--CL03-------------------------
  7298. INT 7F - Alloy NTNX, MW386 - GET RECEIVE ISR
  7299.     AH = 14h
  7300.     CL = 03h
  7301. Return: DX:DI -> current receive ISR
  7302. SeeAlso: AH=14h/CL=00h,AH=14h/CL=04h
  7303. --------N-7F14--CL04-------------------------
  7304. INT 7F - Alloy NTNX, MW386 - GET ACKNOWLEDGE ISR
  7305.     AH = 14h
  7306.     CL = 04h
  7307. Return: DX:DI -> current acknowledge ISR
  7308. SeeAlso: AH=14h/CL=01h,AH=14h/CL=03h
  7309. --------N-7F14--CL05-------------------------
  7310. INT 7F - Alloy NTNX (Host), MW386 - GET BUSY POINTER
  7311.     AH = 14h
  7312.     CL = 05h
  7313.     DX:DI -> buffer for busy structure (see #3084)
  7314. Return: DX:DI buffer filled
  7315.  
  7316. Format of Alloy busy structure:
  7317. Offset    Size    Description    (Table 3084)
  7318.  00h    DWORD    pointer to busy flag byte
  7319.  04h    WORD    fixed port address (FF00h)
  7320. --------N-7F15--CL00-------------------------
  7321. INT 7F - Alloy NTNX, MW386 - GET CHANNEL STATUS
  7322.     AH = 15h
  7323.     CL = 00h
  7324.     AL = channel number
  7325.     DX:DI -> status structure (see #3085)
  7326. Return: AL = status (00h-03h) (see #3081)
  7327. SeeAlso: AH=15h/CL=01h
  7328.  
  7329. Format of Alloy channel status structure:
  7330. Offset    Size    Description    (Table 3085)
  7331.  00h    BYTE    channel status
  7332.         bit 0: channel open
  7333.         bit 1: channel buffer contains received data
  7334.         bit 7: channel locked
  7335.  01h    BYTE    sender ID
  7336. --------N-7F15--CL01-------------------------
  7337. INT 7F - Alloy NTNX, MW386 - GET NEXT FULL CHANNEL
  7338.     AH = 15h
  7339.     CL = 01h
  7340.     DX:DI -> full-channel structure (see #3086)
  7341. Return: AL = status
  7342.         00h successful
  7343.         01h busy
  7344.         0Ah no datagrams available
  7345. Note:    MW386 v1.0 returns the lowest channel with a datagram; newer versions
  7346.       and NTNX return the oldest datagram
  7347. SeeAlso: AH=15h/CL=00h
  7348.  
  7349. Format of Alloy full-channel structure:
  7350. Offset    Size    Description    (Table 3086)
  7351.  00h    BYTE    number of channel with oldest datagram
  7352.  01h    BYTE    sender ID
  7353. --------N-7F15--CL02-------------------------
  7354. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM NUMBER OF CHANNELS
  7355.     AH = 15h
  7356.     CL = 02h
  7357. Return: AH = number of channels available (40h for MW386)
  7358. Note:    the application may always assume at least 32 channels available
  7359. SeeAlso: AH=15h/CL=03h
  7360. --------N-7F15--CL03-------------------------
  7361. INT 7F - Alloy NTNX, MW386 - GET MAXIMUM PACKET SIZE
  7362.     AH = 15h
  7363.     CL = 03h
  7364.     DX:DI -> WORD for return value
  7365. Return: buffer WORD filled with maximum packet size (4096 for MW386)
  7366. SeeAlso: AH=15h/CL=02h
  7367. --------N-7F15--CL04-------------------------
  7368. INT 7F - Alloy NTNX, MW386 - GET AND CLEAR ACKNOWLEDGE STATUS
  7369.     AH = 15h
  7370.     CL = 04h
  7371.     DX:DI -> status structure (see #3087)
  7372. Return: AL = status
  7373.         00h successful
  7374.         DX:DI structure filled
  7375.         01h busy
  7376.         0Ah no acknowledgement has arrived
  7377. SeeAlso: AH=12h,AH=14h/CL=01h
  7378.  
  7379. Format of Alloy status structure:
  7380. Offset    Size    Description    (Table 3087)
  7381.  00h    BYTE    sender ID
  7382.  01h    BYTE    channel number
  7383.  02h  4 BYTEs    receiver status (see #3081)
  7384. --------N-7F16-------------------------------
  7385. INT 7F - Alloy NTNX, MW386 - DIRECT MEMORY TRANSFER
  7386.     AH = 16h
  7387.     DX:SI -> transfer structure (see #3088)
  7388. Return: AL = status
  7389.         00h successful
  7390.         0Ah source or destination out of range
  7391.         0Bh transfer kernel busy--try again
  7392. Notes:    this call transfers memory contents directly between users; both source
  7393.       and destination user IDs may differ from the caller's ID
  7394.     no segment wrap is allowed
  7395.  
  7396. Format of Alloy transfer structure:
  7397. Offset    Size    Description    (Table 3088)
  7398.  00h    WORD    bytes to transfer
  7399.  02h    BYTE    source ID
  7400.         FEh = caller
  7401.  03h    DWORD    source address
  7402.  07h    BYTE    destination ID
  7403.         FFh = all slaves except caller
  7404.         FEh = caller
  7405.  08h    DWORD    destination address
  7406. --------N-7F21-------------------------------
  7407. INT 7F - Alloy NTNX, MW386 - SEND MESSAGE OR COMMAND TO USER(S)
  7408.     AH = 21h
  7409.     AL = sender's user ID
  7410.     DS:DX -> control packet (see #3089)
  7411. Note:    messages or commands are ignored if disabled by the destination user
  7412. SeeAlso: AH=22h
  7413.  
  7414. Format of Alloy control packet:
  7415. Offset    Size    Description    (Table 3089)
  7416.  00h    BYTE    packet type
  7417.         00h message
  7418.         01h NTNX command
  7419.         02h MW386 command
  7420.  01h    BYTE    destination user ID or 'A' for all users
  7421.  02h 62 BYTEs    ASCIZ message (packet type 00h)
  7422.         BIOS keycodes terminated by NUL byte (type 01h) or word (02h)
  7423. Note:    a maximum of 16 keycodes will be processed for NTNX and MW386 commands
  7424. --------N-7F22-------------------------------
  7425. INT 7F - Alloy NTNX - GET MESSAGE
  7426.     AH = 22h
  7427. Return: pending messages displayed on user's screen
  7428. SeeAlso: AH=21h
  7429. --------N-7F24-------------------------------
  7430. INT 7F - Alloy NTNX, MW386 - ATTACH OR RELEASE DRIVE FOR LOW-LEVEL WRITE ACCESS
  7431.     AH = 24h
  7432.     CL = function
  7433.         00h attach
  7434.         01h release
  7435.     CH = drive (0=A:,1=B:,etc)
  7436. Return: AX = status (see #3090)
  7437. Note:    only drives on the current machine may be attached
  7438.  
  7439. (Table 3090)
  7440. Values for Alloy function status:
  7441.  00h    successful
  7442.  01h    invalid request
  7443.  02h    already attached
  7444.  03h    not attached
  7445.  04h    lock table full
  7446. --------N-7F24-------------------------------
  7447. INT 7F - Alloy NTNX - ATTACH/RELEASE HOST PROCESSOR
  7448.     AH = 24h
  7449.     CL = function
  7450.         02h attach host
  7451.         03h release host
  7452. Return: AX = status (see #3090)
  7453. Note:    the host processor may be attached in order to perform I/O via the host
  7454. --------N-7F25--CL00-------------------------
  7455. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE VERSION
  7456.     AH = 25h
  7457.     CL = 00h
  7458. Return: AH = version suffix letter
  7459.     CH = major version number
  7460.     CL = minor version number
  7461. SeeAlso: AH=25h/CL=01h
  7462. --------N-7F25--CL01-------------------------
  7463. INT 7F - Alloy ANSK, NTNX, MW386 - GET NETWORK EXECUTIVE TYPE
  7464.     AH = 25h
  7465.     CL = 01h
  7466. Return: CL = executive type (see #3091)
  7467. SeeAlso: AH=25h/CL=00h
  7468.  
  7469. (Table 3091)
  7470. Values for Alloy network executive type:
  7471.  00h    RTNX
  7472.  01h    ATNX
  7473.  02h    NTNX
  7474.  03h    BTNX
  7475.  04h    MW386
  7476.  05h    ANSK
  7477. --------V-7F2525-----------------------------
  7478. INT 7F - TIGA Communications Driver v2.05 - ???
  7479.     AX = 2525h
  7480.     BX = ???
  7481. Return: ???
  7482. SeeAlso: AX=4321h,AX=5555h
  7483. --------N-7F26--CL00-------------------------
  7484. INT 7F - Alloy NTNX, MW386 - GET NTNX FILE MODE
  7485.     AH = 26h
  7486.     CL = 00h
  7487. Return: AX = file mode bits (see #3092)
  7488. Note:    MW386 does not support file modes, and always returns AX=001Fh
  7489. SeeAlso: AH=26h,AH=26h/CL=06h
  7490.  
  7491. Bitfields for Alloy file mode bits:
  7492. Bit(s)    Description    (Table 3092)
  7493.  0    directory protection enabled
  7494.  1    extended open enabled
  7495.  2    flush on every disk write
  7496.  3    flush on every disk write in locked interval
  7497.  4    flush on reads from simultaneously opened file
  7498. --------N-7F26-------------------------------
  7499. INT 7F - Alloy NTNX - SET FILE I/O CHECKING LEVEL
  7500.     AH = 26h
  7501.     CL = check type to set/reset
  7502.         01h directory protection
  7503.         02h extended open
  7504.         03h flush on every disk write
  7505.         04h flush on disk write if any lock set during write
  7506.         05h flush on all reads if file written
  7507.     AL = new state (00h off, 01h on)
  7508. SeeAlso: AH=26h/CL=00h,AH=26h/CL=06h
  7509. --------N-7F26--CL06-------------------------
  7510. INT 7F - Alloy NTNX - CANCEL FLUSH ON WRITE
  7511.     AH = 26h
  7512.     CL = 06h
  7513. Note:    cancels flags set by AH=26h/CL=03h and AH=26h/CL=04h
  7514. SeeAlso: AH=26h/CL=00h
  7515. --------N-7F30-------------------------------
  7516. INT 7F - Alloy MW386 - GET PORT INFORMATION
  7517.     AH = 30h
  7518.     CX = MW386 port number
  7519. Return: AL = result
  7520.         FFh if port not found
  7521.         else driver unit number
  7522.         BL = port mode
  7523.         BH = port type
  7524.             02h remote
  7525.         DH = owner's machine ID
  7526.         DL = owner's user ID
  7527. SeeAlso: INT 17/AH=8Bh
  7528. --------N-7F31-------------------------------
  7529. INT 7F - Alloy MW386 v1.x only - CHECK PORT ASSIGNMENT
  7530.     AH = 31h
  7531.     ???
  7532. Return: ???
  7533. --------N-7F37-------------------------------
  7534. INT 7F - Alloy NTNX (Host) - GET SEMAPHORE TABLE
  7535.     AH = 37h
  7536. Return: ES:AX -> semaphore table
  7537. --------N-7F37-------------------------------
  7538. INT 7F - Alloy ANSK, NTNX (Slave) - DUMP STRING TO TERMINAL
  7539.     AH = 37h
  7540.     DS:DX -> ASCIZ string to display
  7541. Note:    if the string is empty, a terminal update will be forced
  7542. --------N-7F38-------------------------------
  7543. INT 7F - Alloy NTNX (Slave), MW386 - SET NEW TERMINAL DRIVER
  7544.     AH = 38h
  7545.     AL = new terminal driver number
  7546.         FFh dummy driver
  7547.         FEh current driver
  7548.         FDh load new driver
  7549.         DS:SI -> new driver
  7550. SeeAlso: AH=39h
  7551. --------N-7F39-------------------------------
  7552. INT 7F - Alloy MW386 - SET TERMINAL DRIVER FOR ANOTHER USER
  7553.     AH = 39h
  7554.     AL = new terminal driver number
  7555.         FFh dummy driver
  7556.         FEh current driver
  7557.         FDh load new driver
  7558.         DS:SI -> new driver
  7559.     DL = user number (FFh = caller)
  7560.     DH = machine number if DL <> FFh
  7561. Return: CF set if invalid user number
  7562.     CF clear if successful
  7563. Notes:    only available to supervisors
  7564.     the new driver number will not take effect until the user is rebooted
  7565. SeeAlso: AH=38h
  7566. --------N-7F3A-------------------------------
  7567. INT 7F - Alloy MW386 - GET TERMINAL PARAMETERS
  7568.     AH = 3Ah
  7569.     DL = user number (FFh = caller)
  7570.     DH = machine number
  7571. Return: CF clear if successful
  7572.         AH = terminal driver number
  7573.         AL = baud rate (00h = 38400, 01h = 19200, etc)
  7574.         CL = parity (00h none, 01h even, 02h odd)
  7575.         CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  7576.     CF set if invalid user number
  7577. SeeAlso: AH=3Bh
  7578. --------N-7F3B-------------------------------
  7579. INT 7F - Alloy MW386 - SET TERMINAL PARAMETERS
  7580.     AH = 3Bh
  7581.     AL = baud rate (00h = 38400, 01h = 19200, etc)
  7582.     CL = parity (00h none, 01h even, 02h odd)
  7583.     CH = handshaking (00h none, 01h XON/XOFF, 02h DTR/DSR, 03h XPC)
  7584.     DL = user number (FFh = caller)
  7585.     DH = machine number for user
  7586. Return: CF set if invalid user number
  7587. Notes:    only available to supervisors
  7588.     the new parameters will take effect immediately if the user's terminal
  7589.       has not been started, else AH=3Dh must be called to post the changes
  7590. SeeAlso: AH=3Ah,AH=3Dh
  7591. --------N-7F3C-------------------------------
  7592. INT 7F - Alloy MW386 - ENABLE/DISABLE AUTOBAUD DETECT
  7593.     AH = 3Ch
  7594.     AL = new state (00h disabled, 01h enabled)
  7595.     DL = user number (FFh = caller)
  7596.     DH = machine number for user
  7597. Return: CF set if invalid user number
  7598. Note:    only available to supervisors
  7599. SeeAlso: AH=3Dh
  7600. --------N-7F3D-------------------------------
  7601. INT 7F - Alloy MW386 - POST TERMINAL CONFIGURATION CHANGES
  7602.     AH = 3Dh
  7603. Note:    should be called whenever a program changes the terminal type or its
  7604.       parameters
  7605. SeeAlso: AH=3Bh
  7606. --------N-7F41-------------------------------
  7607. INT 7F - Alloy NTNX - LOCK FILE FOR USER
  7608.     AH = 41h
  7609.     AL = user ID
  7610.     DS:DX -> ASCIZ filename
  7611. Return: AL = status (see #3093)
  7612. Note:    requests exclusive read/write access to file
  7613. SeeAlso: AH=00h,AH=41h"MW386",AH=42h"NTNX"
  7614.  
  7615. (Table 3093)
  7616. Values for Alloy function status:
  7617.  00h    successful
  7618.  01h    invalid function
  7619.  02h    already locked
  7620.  03h    unable to lock
  7621.  04h    lock table full or semaphore space exhausted
  7622. --------N-7F41-------------------------------
  7623. INT 7F - Alloy MW386 - LOCK SEMAPHORE FOR USER
  7624.     AH = 41h
  7625.     AL = user ID
  7626.     DS:DX -> ASCIZ semaphore name
  7627. Return: AL = status (see #3093)
  7628. SeeAlso: AH=00h,AH=42h"MW386"
  7629. --------s-7F4150BHC1-------------------------
  7630. INT 7F U - Voyetra - AAPISG - API
  7631.     AX = 4150h ('AP')
  7632.     BH = C1h
  7633.     BL = function (00h-13h)
  7634.         00h initialize (fails except first time called)
  7635.     ???
  7636. Return: AX = status???
  7637.         0000h successful
  7638.         0001h failed
  7639. Program: AAPISG is a driver by Voyetra for the Aztech Sound Galaxy sound board
  7640. BUG:    the function range check uses JL instead of JB, so it will cause a
  7641.       crash if BL >= 80h on entry
  7642. SeeAlso: AX=4331h,AX=564Dh,AX=5658h
  7643. --------N-7F42-------------------------------
  7644. INT 7F - Alloy NTNX - UNLOCK FILE FOR USER
  7645.     AH = 42h
  7646.     AL = user ID
  7647.     DS:DX -> ASCIZ filename
  7648. Return: AL = status (see #3093)
  7649. SeeAlso: AH=00h,AH=41h"NTNX",AH=42h"MW386"
  7650. --------N-7F42-------------------------------
  7651. INT 7F - Alloy MW386 - UNLOCK SEMAPHORE FOR USER
  7652.     AH = 42h
  7653.     AL = user ID
  7654.     DS:DX -> ASCIZ semaphore name
  7655. Return: AL = status
  7656.         00h successful
  7657.         01h invalid function
  7658.         03h unable to unlock semaphore
  7659. SeeAlso: AH=02h,AH=41h"MW386",AH=42h"NTNX"
  7660. --------V-7F4321-----------------------------
  7661. INT 7F - TIGA Communications Driver v2.05 - INSTALLATION CHECK
  7662.     AX = 4321h
  7663. Return: AX = 0000h if installed
  7664. Note:    INT 7F is the default, but may be overridden
  7665. SeeAlso: AH=01h"TIGA",AX=1234h,AX=2525h,AX=4321h,AX=5555h
  7666. --------s-7F4331BHC1-------------------------
  7667. INT 7F U - Voyetra - VAPISG - API
  7668.     AX = 4331h ('C1')
  7669.     BH = C1h
  7670.     BL = function (00h-7Ah)
  7671.     ???
  7672. Return: ???
  7673. Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy
  7674.       sound board
  7675. SeeAlso: AX=4150h,AX=564Dh,AX=5658h
  7676. --------N-7F4E-------------------------------
  7677. INT 7F - Alloy MW386 v2+ - SET ERROR MODE
  7678.     AH = 4Eh
  7679.     AL = error mode flags
  7680.         bit 0: display critical disk errors
  7681.         bit 1: display sharing errors
  7682.     DX = 4E58h ("NX")
  7683. Return: AL = status
  7684.         00h successful
  7685. SeeAlso: AH=4Fh
  7686. --------N-7F4F-------------------------------
  7687. INT 7F - Alloy MW386 v2+ - SET FCB MODE
  7688.     AH = 4Fh
  7689.     AL = FCB mode
  7690.         02h read/write compatibility
  7691.         42h read/write shared
  7692.     DX = 4E58h ("NX")
  7693. Return: AL = status
  7694.         00h successful
  7695. --------V-7F5555-----------------------------
  7696. INT 7F - TIGA Communications Driver v2.05 - ???
  7697.     AX = 5555h
  7698.     BX = ???
  7699. Return: ???
  7700. SeeAlso: AX=4321h
  7701. --------s-7F564DBHC1-------------------------
  7702. INT 7F U - Voyetra Multimedia Player - VMP.EXE API
  7703.     AX = 564Dh ('VM')
  7704.     BH = C1h
  7705.     BL = function (00h-1Bh)
  7706.         00h ???
  7707.         Return: CF clear
  7708.             AX = 0000h
  7709.     ???
  7710. Return: AX = FFFFh if invalid function
  7711.     ???
  7712. SeeAlso: AX=4331h,AX=5658h
  7713. --------s-7F5658BHC1-------------------------
  7714. INT 7F U - Voyetra - VAPISG - API
  7715.     AX = 5658h ('VX')
  7716.     BH = C1h
  7717.     BL = function (00h-1Bh)
  7718.     ???
  7719. Return: ???
  7720. Program: VAPISG is a MIDI driver by Voyetra for the Aztech Sound Galaxy
  7721.       sound board
  7722. SeeAlso: AX=4331h,AX=564Dh
  7723. --------N-7F81-------------------------------
  7724. INT 7F - Alloy NTNX - ATTACH DEVICE FOR USER
  7725.     AH = 81h
  7726.     AL = user ID
  7727.     DS:DX -> ASCIZ device name
  7728. SeeAlso: AH=82h
  7729. --------N-7F82-------------------------------
  7730. INT 7F - Alloy NTNX - RELEASE DEVICE FOR USER
  7731.     AH = 82h
  7732.     AL = user ID
  7733.     DS:DX -> ASCIZ device name
  7734. SeeAlso: AH=81h
  7735. --------N-7FA0-------------------------------
  7736. INT 7F - Alloy MW386 - GET USER NAME
  7737.     AH = A0h
  7738.     DL = user number (FFh = caller)
  7739.     DH = machine number for user
  7740.     ES:DI -> 17-byte buffer for ASCIZ user name
  7741. Return: CF set if invalid user number
  7742. SeeAlso: AH=03h,AH=A1h
  7743. --------N-7FA1-------------------------------
  7744. INT 7F - Alloy MW386 - GET MACHINE, USER, AND PROCESS NUMBER
  7745.     AH = A1h
  7746. Return: AL = process number
  7747.     DL = user number
  7748.     DH = machine number
  7749. SeeAlso: AH=03h,AH=A0h,AH=A2h
  7750. --------N-7FA2-------------------------------
  7751. INT 7F - Alloy MW386 - GET USER PRIVILEGE LEVEL
  7752.     AH = A2h
  7753.     DL = user number (FFh = caller)
  7754.     DH = machine number for user
  7755. Return: CF clear if successful
  7756.         AL = privilege level
  7757.         00h supervisor
  7758.         01h high
  7759.         02h medium
  7760.         03h low
  7761.     CF set if invalid user number
  7762. SeeAlso: AH=A1h,AH=A3h
  7763. --------N-7FA3-------------------------------
  7764. INT 7F - Alloy MW386 - GET USER LOGIN STATE
  7765.     AH = A3h
  7766.     DL = user number
  7767.     DH = machine number for user
  7768. Return: CF clear if successful
  7769.         AL = login state
  7770.         00h never logged in
  7771.         01h currently logged out
  7772.         03h currently logged in
  7773.     CF set if invalid user number or user not active
  7774. SeeAlso: AH=A2h
  7775. --------N-7FA4-------------------------------
  7776. INT 7F - Alloy MW386 - VERIFY USER PASSWORD
  7777.     AH = A4h
  7778.     DS:DX -> ASCIZ password (null-padded to 16 bytes)
  7779. Return: AL = status
  7780.         00h     accepted
  7781.         else invalid password
  7782. --------N-7FA500-----------------------------
  7783. INT 7F - Alloy MW386 - GET USER STATUS
  7784.     AX = A500h
  7785.     DI = machine number and user number
  7786. Return: CF clear if successful
  7787.         BX = user flags
  7788.         bit 5: allow messages
  7789.         CL = scan code for task manager hotkey
  7790.         CH = scan code for spooler hotkey
  7791.         DL = scan code for task swapper hotkey
  7792.         DH = modifier key status
  7793.     CF set if invalid user number
  7794. SeeAlso: AX=A501h
  7795. Index:    hotkeys;Alloy MW386
  7796. --------N-7FA501-----------------------------
  7797. INT 7F - Alloy MW386 - SET USER STATUS
  7798.     AX = A501h
  7799.     BX = user flags (see AX=A500h)
  7800.     CL = scan code for task manager hotkey
  7801.     CH = scan code for spooler hotkey
  7802.     DL = scan code for task swapper hotkey
  7803.     DH = modifier key status
  7804.     DI = machine number and user number
  7805. Return: CF set if invalid user number
  7806. Note:    must have supervisor privilege to set another user's status
  7807. SeeAlso: AX=A500h
  7808. Index:    hotkeys;Alloy MW386
  7809. --------V-7FABCDBX0000-----------------------
  7810. INT 7F - IBM 8516 Touch Screen Device Driver - GET API ENTRY
  7811.     AX = ABCDh
  7812.     BX = 0000h
  7813. Return: AX = total number of functions available
  7814.     ES:BX -> entry point array (see #3094)
  7815. SeeAlso: AX=0104h,AX=0105h
  7816.  
  7817. (Table 3094)
  7818. Values for 8516 Touch Screen function number:
  7819.  00h    check initialization and reset (see #3095)
  7820.  14h    set user-defined subroutine (see #3096)
  7821. Notes:    each driver function takes two stack parameters using Pascal calling
  7822.       conventions: address of parameter block and address of results buffer
  7823.     all pointers are FAR pointers
  7824.     on return, AX contains the status of the call:
  7825.         AX = 0000h successful
  7826.          0001h invalid input
  7827.          0002h interface error
  7828.          0003h unable to perform function
  7829.  
  7830. Format of 8516 Touch Screen Function 00h parameter block:
  7831. Offset    Size    Description    (Table 3095)
  7832.  00h    WORD    0000h (function number)
  7833. Note:    this function should be called before any other device driver functions
  7834.  
  7835. Format of 8516 Touch Screen Function 00h results buffer:
  7836. Offset    Size    Description    (Table 3096)
  7837.  00h    WORD    touch screen status
  7838.         0000h unavailable
  7839.         0001h uncalibrated
  7840.         FFFFh available
  7841.  02h    WORD    aux mouse status (0000h not present, FFFFh present)
  7842. Notes:    the following driver parameters will have been reset to zero:
  7843.       touchdown counter, liftoff counter, position at last touch, position
  7844.       at last lift, int call mask, select on count, select off count,
  7845.       pos select on count, pos select off count.
  7846.     the following driver parameters will have been reset as listed:
  7847.       mouse emulation mode: left on
  7848.       thresholds: 46 on screen, 96 push harder, 80 push release
  7849.       x, y hysteresis: 400
  7850.       data repeat rate: 40/sec
  7851.       select mechanism: push-harder - first-touch
  7852.       coordinate origin: upper left corner
  7853.       filter frequency: medium
  7854.       data block mask: all enabled
  7855.       click lock: on
  7856. --------N-7FB0-------------------------------
  7857. INT 7F - Alloy NTNX, MW386 - RELEASE ALL SEMAPHORES FOR USER
  7858.     AH = B0h
  7859.     AL = user number
  7860.     DS = code segment
  7861. Note:    MW386 ignores AL and DS; it releases all semaphores locked using INT 67
  7862.       or INT 7F locking functions
  7863. SeeAlso: AH=B1h,AH=B2h,AH=B3h,AH=B4h
  7864. --------N-7FB1--SF00-------------------------
  7865. INT 7F - Alloy NTNX, MW386 - RELEASE NORMAL SEMAPHORES FOR USER
  7866.     AH = B1h subfn 00h
  7867.     AL = (bits 7-5) 000
  7868.          (bits 4-0) user ID
  7869. Note:    MW386 ignores AL; it releases all semaphores locked using INT 67 or
  7870.       INT 7F locking functions
  7871. SeeAlso: AH=B0h,AH=B2h,AH=B3h,AH=B4h
  7872. --------N-7FB2--SF01-------------------------
  7873. INT 7F - Alloy NTNX - RELEASE MESSAGES FOR USER
  7874.     AH = B2h subfn 01h
  7875.     AL = (bits 7-5) 001
  7876.          (bits 4-0) user ID
  7877. SeeAlso: AH=B0h,AH=B1h,AH=B3h,AH=B4h
  7878. --------N-7FB3--SF02-------------------------
  7879. INT 7F - Alloy NTNX - RELEASE FILES FOR USER
  7880.     AH = B3h subfn 02h
  7881.     AL = (bits 7-5) 010
  7882.          (bits 4-0) user ID
  7883. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B4h
  7884. --------N-7FB4-------------------------------
  7885. INT 7F - Alloy NTNX - RELEASE DEVICES FOR USER
  7886.     AH = B4h
  7887.     AL = user ID
  7888. SeeAlso: AH=B0h,AH=B1h,AH=B2h,AH=B3h
  7889. --------N-7FC3-------------------------------
  7890. INT 7F - Alloy MW386 - WRITE BYTE TO TERMINAL AUX PORT
  7891.     AH = C3h
  7892.     AL = byte to write
  7893. Return: CF clear if successful
  7894.     CF set on error
  7895. SeeAlso: AH=C6h
  7896. --------N-7FC5-------------------------------
  7897. INT 7F - Alloy MW386 - CHANGE CONSOLE MODE
  7898.     AH = C5h
  7899.     AL = new console mode
  7900.         00h keyboard indirect
  7901.         01h keyboard direct
  7902.         02h data handshake enforced
  7903.         03h no data handshake
  7904. Return: CF clear if successful
  7905.         AL = prior console mode
  7906.     CF set on error (caller is not remote user)
  7907. Note:    modes 2 and 3 may be used for input through the console port; no video
  7908.       output should be performed in these modes
  7909. --------N-7FC6-------------------------------
  7910. INT 7F - Alloy MW386 - WRITE BYTE TO CONSOLE PORT
  7911.     AH = C6h
  7912.     AL = byte to write
  7913. Return: CF clear if successful
  7914.     CF set on error (caller is not remote user)
  7915. Note:    any terminal driver data translation will be bypassed
  7916. SeeAlso: AH=C3h,AH=C7h
  7917. --------N-7FC7-------------------------------
  7918. INT 7F - Alloy MW386 - READ CONSOLE DATA BYTE
  7919.     AH = C7h
  7920. Return: CF clear if successful
  7921.         AL = byte read
  7922.     CF set on error (no data available or caller is not remote user)
  7923. Note:    used to read data after placing console in mode 2 or 3 (see AH=C5h)
  7924. SeeAlso: AH=C5h,AH=C6h,AH=C8h
  7925. --------N-7FC8-------------------------------
  7926. INT 7F - Alloy MW386 - READ CONSOLE DATA INTO BUFFER
  7927.     AH = C8h
  7928.     AL = maximum bytes to read
  7929.     ES:DI -> buffer for console data
  7930. Return: CF clear if successful
  7931.         CX = number of bytes read
  7932.     CF set on error (caller is not remote user)
  7933. SeeAlso: AH=C7h
  7934. --------N-7FCF-------------------------------
  7935. INT 7F - Alloy NTNX - REBOOT USER PROCESSOR
  7936.     AH = CFh
  7937.     DS:DX -> ASCIZ string containing user number to be reset
  7938. SeeAlso: AH=D6h
  7939. --------N-7FD6-------------------------------
  7940. INT 7F - Alloy MW386 - RESET NETWORK EXECUTIVE
  7941.     AH = D6h
  7942.     DS:DX -> reset packet (see #3097)
  7943. Return: never if successful
  7944. Note:    all users will be shut down immediately if successful
  7945. SeeAlso: AH=CFh
  7946.  
  7947. Format of Alloy MW386 reset packet:
  7948. Offset    Size    Description    (Table 3097)
  7949.  00h    DWORD    reset code (60606060h)
  7950.  04h 16 BYTEs    ASCIZ supervisor password padded with nulls
  7951. --------N-7FD7-------------------------------
  7952. INT 7F - Alloy MW386 - POST EVENT
  7953.     AH = D7h
  7954.     AL = user number (if local event)
  7955.     DX = event number
  7956. --------N-7FD8-------------------------------
  7957. INT 7F - Alloy MW386 - FLUSH DISK BUFFERS
  7958.     AH = D8h
  7959. Return: CF set on error
  7960. Note:    forces all disk buffers to be written out immediately
  7961. SeeAlso: INT 21/AH=0Dh,INT 21/AX=5D01h,INT 2F/AX=1120h
  7962. --------N-7FDB-------------------------------
  7963. INT 7F - Alloy MW386 v2+ - GET MW386 INVOCATION DRIVE
  7964.     AH = DBh
  7965. Return: AL = drive from which MW386 was started (2=C:,3=D:,etc)
  7966. --------N-7FE0-------------------------------
  7967. INT 7F - Alloy MW386 - CREATE DOS TASK
  7968.     AH = E0h
  7969.     AL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  7970.     DS:DX -> ASCIZ task name (max 16 bytes)
  7971. Return: CF clear if successful
  7972.         AL = task create ID
  7973.     CF set on error
  7974. Note:    only foreground DOS tasks can use this function
  7975. SeeAlso: AH=E1h,AH=E2h,AH=E3h,AH=E6h,AH=E7h
  7976. --------N-7FE1-------------------------------
  7977. INT 7F - Alloy MW386 - GET DOS TASK PID FROM CREATE ID
  7978.     AH = E1h
  7979.     AL = create ID (from AH=E0h)
  7980. Return: AL = DOS process number
  7981.     CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  7982. Note:    this function should not be called immediately after creating a new
  7983.       DOS task, since the new task is being initialized by a concurrent
  7984.       process
  7985. SeeAlso: AH=E0h,AH=E2h
  7986. --------N-7FE2-------------------------------
  7987. INT 7F - Alloy MW386 - SWITCH TO NEW DOS TASK
  7988.     AH = E2h
  7989.     AL = DOS process number (from AH=E1h)
  7990. Return: CF set on error (invalid process number or caller not foreground task)
  7991. Notes:    specified task becomes the foreground task and current task is placed
  7992.       in the background
  7993.     may only be called by a foreground task
  7994. SeeAlso: AH=E0h,AH=E1h
  7995. --------N-7FE3-------------------------------
  7996. INT 7F - Alloy MW386 - CHANGE NAME OF DOS TASK
  7997.     AH = E3h
  7998.     DS:DX -> ASCIZ task name
  7999. ---v1.x---
  8000.     AL = user number
  8001. ---v2+---
  8002.     BH = user number
  8003.     BL = task number
  8004. Return: CF clear if successful
  8005.     CF set on error (invalid process number)
  8006. SeeAlso: AH=E0h,AH=E4h,AH=E5h
  8007. --------N-7FE4-------------------------------
  8008. INT 7F - Alloy MW386 - GET TASK NAME FROM PROCESS NUMBER
  8009.     AH = E4h
  8010.     ES:DI -> buffer for task name
  8011. ---v1.x---
  8012.     AL = user number
  8013. ---v2+---
  8014.     BH = user number
  8015.     BL = task number
  8016. Return: CF clear if successful
  8017.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  8018.         DX = task flags
  8019.         bit 7: MS-DOS process
  8020.         ES:DI buffer filled
  8021.     CF set on error (invalid process number)
  8022. SeeAlso: AH=E3h,AH=E5h
  8023. --------N-7FE5-------------------------------
  8024. INT 7F - Alloy MW386 - GET PROCESS NUMBER FROM TASK NAME
  8025.     AH = E5h
  8026.     DS:DX -> ASCIZ task name
  8027.     BH = user number
  8028. Return: CF clear if successful
  8029.         AL = DOS process number
  8030.         CL = memory size (00h=128K, 01h=256K, 02h=384K, 03h=512K, 04h=640K)
  8031.     CF set on error (no match for name)
  8032. SeeAlso: AH=E3h,AH=E4h
  8033. --------N-7FE6-------------------------------
  8034. INT 7F - Alloy MW386 - GET NUMBER OF AVAILABLE USER TASKS
  8035.     AH = E6h
  8036. Return: AX = number of processes available to current user
  8037. SeeAlso: AH=E0h
  8038. --------N-7FE7-------------------------------
  8039. INT 7F - Alloy MW386 - REMOVE DOS TASK
  8040.     AH = E7h
  8041.     AL = DOS process number
  8042. Return:    CF clear if successful
  8043.     CF set on error (invalid process number or first process)
  8044. Note:    can only be called by a foreground task
  8045. SeeAlso: AH=E0h
  8046. --------N-7FE8-------------------------------
  8047. INT 7F - Alloy MW386 - DOS TASK DELAY
  8048.     AH = E8h
  8049.     CX = delay time in milliseconds
  8050. Note:    a delay of 0 may be used to surrender the current time slice
  8051. SeeAlso: INT 15/AX=1000h,INT 1A/AX=FF01h,INT 21/AH=EEh"DoubleDOS"
  8052. SeeAlso: INT 2F/AX=1680h
  8053. --------N-7FF0-------------------------------
  8054. INT 7F - Alloy MW386 - RESTRICT DIRECTORY TO GROUP
  8055.     AH = F0h
  8056.     AL = group number
  8057.     DS:DX -> ASCIZ directory name
  8058. Return: CF clear if successful
  8059.         AX = status
  8060.         0002h directory not found
  8061.         0003h directory not found
  8062.         0005h directory in use, cannot be restricted
  8063.         02xxh restricted to group xxh
  8064.     CF set on error
  8065. Note:    the restriction on the directory may be removed by calling this
  8066.       function with group 0, then using AH=F1h to assign the directory to
  8067.       group 0
  8068. SeeAlso: AH=F1h,AH=F2h,AH=F3h
  8069. --------N-7FF1-------------------------------
  8070. INT 7F - Alloy MW386 - ASSIGN DIRECTORY TO GROUP
  8071.     AH = F1h
  8072.     AL = group number
  8073.     DS:DX -> ASCIZ directory name
  8074. Notes:    performs permanent assignment to a group; no immediate action is taken
  8075.       unless the directory has been restricted with AH=F0h
  8076.     may be used to restrict a nonexistent directory
  8077. SeeAlso: AH=F0h
  8078. --------N-7FF2-------------------------------
  8079. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY
  8080.     AH = F2h
  8081.     CX = entry number
  8082.     ES:DI -> 64-byte buffer
  8083. Return: CF clear if successful
  8084.         buffer filled with 63-byte directory info and 1-byte group number
  8085.     CF set on error (invalid entry)
  8086. SeeAlso: AH=F0h,AH=F3h
  8087. --------N-7FF3-------------------------------
  8088. INT 7F - Alloy MW386 - READ RESTRICTED DIRECTORY ENTRY FOR GROUP
  8089.     AH = F3h
  8090.     AL = group number
  8091.     CX = entry number
  8092.     ES:DI -> 64-byte buffer
  8093. Return: CF clear if successful
  8094.         CX = next entry number
  8095.         buffer filled with 63-byte directory info and 1-byte group number
  8096.     CF set on error (no more matching entries)
  8097. Note:    like AH=F2h, but only returns directories belonging to the specified
  8098.       group
  8099. SeeAlso: AH=F2h
  8100. --------N-7FF8-------------------------------
  8101. INT 7F - Alloy MW386 - ASSIGN USER TO GROUP
  8102.     AH = F8h
  8103.     AL = group number
  8104.     DL = user number
  8105.     DH = machine number (currently 00h)
  8106. Return: CF clear if successful
  8107.     CF set on error (user already in maximum number of groups)
  8108. Note:    each user is allowed eight group assignments
  8109. SeeAlso: AH=F9h,AH=FAh
  8110. --------N-7FF9-------------------------------
  8111. INT 7F - Alloy MW386 - REMOVE USER FROM GROUP
  8112.     AH = F9h
  8113.     AL = group number
  8114.     DL = user number
  8115.     DH = machine number (currently 00h)
  8116. Return: CF clear if successful
  8117.     CF set if failed
  8118. SeeAlso: AH=F8h,AH=FAh
  8119. --------N-7FFA-------------------------------
  8120. INT 7F - Alloy MW386 - GET USER GROUP LIST
  8121.     AH = FAh
  8122.     DL = user number
  8123.     DH = machine number (currently 00h)
  8124.     ES:DI -> 16-byte buffer for group list
  8125. Return: CX = number of groups
  8126.     ES:DI buffer filled with group numbers
  8127. SeeAlso: AH=F8h,AH=F9h
  8128. --------N-7FFB-------------------------------
  8129. INT 7F - Alloy MW386 - ASSIGN GROUP NAME
  8130.     AH = FBh
  8131.     CL = group number
  8132.     ES:DI -> ASCIZ group name (max 17 bytes)
  8133. SeeAlso: AH=FCh
  8134. --------N-7FFC-------------------------------
  8135. INT 7F - Alloy MW386 - GET GROUP NAME
  8136.     AH = FCh
  8137.     CL = group number
  8138.     ES:DI -> 17-byte buffer for ASCIZ name
  8139. Return: ES:DI buffer filled
  8140. Note:    if the group has not been named, "(unnamed)" is returned
  8141. SeeAlso: AH=FBh
  8142. --------!---Section--------------------------
  8143.